oracle數據庫有兩種操作系統驗證方式:
1.操作系統驗證方式
2.口令文件驗證方式
首先我們來了解三個相關參數:
1.在$ORACLE_HOME/network/admin下的sqlnet.ora文件中的QLNET.AUTHENTICATION_SERVICES
2.REMOTE_LOGIN_PASSWORDFILE參數
3.口令文件orapwd<SID>.ora
三者協同完成身份驗證
QLNET.AUTHENTICATION_SERVICES=(NONE) 使用口令文件驗證方式
QLNET.AUTHENTICATION_SERVICES=(NTS) 操作系統驗證,不適用口令文件(注:WINDOWS操作系統專用的,對 linux、unix不適用的)
QLNET.AUTHENTICATION_SERVICES=(ALL)
操作系統驗證和口令文件都可以
REMOTE_LOGIN_PASSWORDFILE=NONE
此時不使用口令文件,操作系統驗證
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
使用口令文件,但只有一個數據庫實例可以使用此文件。系統允許將 SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶,且以具有這類 身份的其他用戶登錄是有效的
REMOTE_LOGIN_PASSWORDFILE=SHARED
使用口令文件,可有多個數據庫實例使用此文件,但是此設置下
只有INTERNAL/SYS帳號能被識別,即使文件中存有其他用戶的信息, 也不允許他們以SYSOPER/SYSDBA登錄
在windows下QLNET.AUTHENTICATION_SERVICES=(ALL)或者QLNET.AUTHENTICATION_SERVICES=(NTS)才能使用操作系統驗證方式。此時REMOTE_LOGIN_PASSWORDFILE=SHARED|EXCLUSIV|NONE 都可以
在linux和unix下,QLNET.AUTHENTICATION_SERVICES=(ALL)或者不設置QLNET.AUTHENTICATION_SERVICES的情況下,才能使用操作系統驗證方式。此時REMOTE_LOGIN_PASSWORDFILE=SHARED|EXCLUSIV|NONE 都可以
只有在QLNET.AUTHENTICATION_SERVICES=(NONE), REMOTE_LOGIN_PASSWORDFILE=SHARED|EXCLUSIV的情況下才是口令文件驗證方式