oracle操作系統認證和口令文件認證是Oracle的兩種方式,下面就為您介紹Oracle操作系統認證和口令文件認證適用的情況,供您參考。
先總結,後細解:
SQLNET.AUTHENTICATION_SERVICES指$Oracle_HOME/network/admin/sqlnet.ora配置文件中的參數;
REMOTE_LOGIN_PASSWordFILE指Oracle的初始化參數,可以在sqlplus裡通過show parameter命令查看。
SQLNET.AUTHENTICATION_SERVICES=(NTS)
同時REMOTE_LOGIN_PASSWordFILE=(’NONE’)
這為OS認證
SQLNET.AUTHENTICATION_SERVICES=(NONE)(或者注釋掉了)
同時REMOTE_LOGIN_PASSWordFILE=(’EXCLUSIVE’)或(’SHARED’)
這為口令文件認證
SQLNET.AUTHENTICATION_SERVICES=(NTS)
同時REMOTE_LOGIN_PASSWordFILE=(’EXCLUSIVE’)或(’SHARED’)
OS和口令都生效
細解:
1、管理員的權限
SYSDBA: 默認schema 為SYS
SYSOPER: 默認schema 為 PUBLIC
這兩種權限允許用戶在數據庫沒有打開的時候就可以登陸數據庫,所以這種權限的控制權在數據庫之外。通常這種權限也可以被看做一種允許你對數據庫進行某種操作的連接,比如CONNECT / AS SYSDBA
SQL> conn /as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> conn /as sysoper
Connected.
SQL> show user
USER is "PUBLIC"
SQL>
2、兩種管理員權限認證方法
1) Oracle操作系統認證
--以下情況使用該方法:
管理遠程數據庫時,具有安全的網絡連接(secure connection)。
管理本地數據庫時,想使用OS認證。
--操作步驟:
a.建立一個os系統用戶
b.將這個用戶加入到DBA或者OPER的OS組(注釋:在window下,這個默認的組名為ORA_DBA/ORA_OPER);
c.設置參數 REMOTE_LOGIN_PASSWordFILE=NONE
d.編輯sqlnet.ora文件,增加 SQLNET.AUTHENTICATION_SERVICES= (NTS)
e.CONNECT / AS SYSDBA
--關於OSDBA和OSOPER組
OSDBA對應: UNIX下為DBA; Windows下為ORA_DBA
OSOPER對應:UNIX下為OPER;Windows下為ORA_OPER
這些用戶組在安裝數據庫的時候手工或者自動創建,這些組的成員以 as sysdba/sysoper 連接數據庫後,自動授予sysdba/sysoper的管理權限。
2) 口令文件認證
--以下情況使用該方法:
管理遠程數據庫時,沒有安全的網絡連接(secure connection),比如TCP/IP和DECnet協議。
管理本地數據庫時,不想使用OS認證。
--操作步驟:
a.使用ORAPWD創建密碼文件(其中的passWord選項是為SYS用戶設置的)
orapwd file=<filename> password=<passWord> entrIEs=<users>
b.設置參數 remote_login_passWordfile=EXCLUSIVE
c.使用sys用戶登陸
d.在數據庫中創建用戶 create user study identifIEd by study;
e.賦予其SYSDBA/SYSOPER權限
grant sysdba to study; 這樣就將用戶和密碼加入到密碼文件中。
grant sysoper to study;
f.查看密碼文件中的用戶: select * from v$pwfile_users;
如果沒有對應的用戶信息,需要重啟DB,否則登陸時會提示無權限。
g.使用自己的密碼登陸: connect study/study as sysdba;
注意:OS認證優先於密碼文件認證,只要OS用戶屬於OSDBA OR OROPER組,並且使用connect as sysdba / sysoper登錄,則可以忽略輸入的username/passWord。
3、關於參數remote_login_passWordfile
None: 使得Oracle不使用密碼文件,只能使用OS認證,不允許通過不安全網絡進行遠程管理。
Exclusive: 可以使用唯一的密碼文件,但只限一個數據庫。密碼文件中可以包括除了sys用戶的其他用戶。
Shared: 可以在多個數據庫上使用共享的密碼文件。但是密碼文件中只能包含sys用戶。通常用於一個dba管理多個數據庫的時候。
4、V$PWFILE_USERS使用該視圖查看密碼文件中的member
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SQL>
5、非管理員級別用戶的OS認證方法關鍵字:os_authent_prefix
create user donny identifIEd externally;
conn