口令檔案,即password file,用來對通過網路進行管理的使用者進行認證。
1、本地串連
預設情況下,無論執行個體是否已啟動,資料庫伺服器本機使用者登入資料庫需通過作業系統驗證,即發 起登入的作業系統使用者是否屬於oinstall組,是則允
許登入,否則禁止,而與登入時使用的資料庫使用者及口令無關(錯誤的資料庫使用者及錯誤口令或空 口令均允許登入)。注意, 作業系統驗證僅對本地連
接且已as sysdba身份登入才生效,若非as sysdba身份,則進行資料庫驗證。
[root@station31~]#cat /etc/passwd | grep oracle
oracle:x:500:501::/home/oracle:/bin/bash
[root@station31~]#cat /etc/group | grep 501
oinstall:x:501:
sed –i 's/oinstall:x:501/oinstall:x:505/' /etc/group 更改oracle使用者所屬組ID
#su - oracle
$sqlplus / as sysdba; 無口令登入失敗
Perl –p –e 's/oinstall:x:505/oinstall:x:501/' /etc/group 撤消上述更改
測試結果:
作業系統驗證本地執行個體啟動:以as sysdba登入無口令或錯誤口令可登入,以普通使用者登入需正確口 令;
執行個體關閉:只能以as sysdba登入可無口令或錯誤口令可登入,資料庫沒啟動,資料庫驗證失效,普 通使用者無法登入。
禁用作業系統驗證本地執行個體啟動:以as sysdba登入需正確口令。
執行個體關閉:只能以as sysdba並以正確口令登入。
禁用作業系統驗證:
vi $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES (NONE)
添加上行,指定禁用作業系統驗證,提高本地登入安全性。
禁用OS驗證後,本地登入將根據資料庫口令檔案參數的設定(預設生效)改用口令檔案驗證,預設 口令檔案為$ORACLE_HOME/dbs/orapw$ORACLE_SID預設
其中已包含sys使用者。
SQL>show parameter remote_login_passwordfile;
口令檔案驗證規則為:對於以sysdba身份登入的使用者,使用口令檔案進行驗證,驗證口令檔案中是 否包含該使用者且口令檔案中口令是否正確;對於以非
sysdba身份登入的使用者,則仍使用資料庫驗證,驗證資料庫中是否包含該使用者且資料庫中口令是否 正確。