以下的文章主要是淺談Oracle數據庫的外部身份認證實際研究,我在一個信譽度很好的網站,找到了一個關於淺談Oracle數據庫外部身份認證的一些實用性很強的相關資料,拿出來供大家分享。
一、服務器上使用操作系統驗證
1.配置SQLNET.ORA文件
參數NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)表明解析客戶端連接時所用的主機字符串的方式。TNSNAMES表示采用TNSNAMES.ORA文件來解析;ONAMES表示Oracle使用自己的名稱服務器(Oracle Name Server)來解析,目前Oracle建議使用輕量目錄訪問協議LDAP來取代ONAMES;HOSTNAME表示使用host文件,DNS,NIS等來解析;參數SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)表明用戶連接Oracle服務器時使用哪種驗證方式NONE表示Oracle數據庫身份驗證,NTS表示操作系統身份驗證,兩種方式可以並用。
2.建立相應的操作系統組及用戶加入該組
ORA_DBA組中的域用戶和本地用戶不需要Oracle用戶名和密碼就可以登錄Oracle而且該組的用戶登錄數據庫後都具有SYSDBA權限(多個實例時,可以建立類似這樣的組ORA_SID_DBA,其中SID指實例名)同理:ORA_OPER組中的成員具有SYSOPER角色的權限。
3.登錄方式
C:\>sqlplus “/ as sysdba”
或者C:\>sqlplus nolog,然後SQL>connect / as sysdba
4.init.ora中的Remote_Login_Passwordfile對身份驗證的影響。
三個可選值:
NONE:
默認值,指示Oracle系統不使用密碼文件,通過操作系統進行身份驗證的特權用戶擁有SYSORA和SYSOPER權限.
EXCLUSIVE:
1).表示只有一個數據庫實例可以使用密碼文件;
2).允許將SYSORA和SYSOPER權限賦值給SYS以外的其它用戶。
SHARED:
1).表示可以有多個數據庫實例可以使用密碼文件;
2).不允許將SYSORA和SYSOPER權限賦值給SYS以外的其它用戶。
所以,如果要以操作系統身份登錄,Remote_Login_Passwordfile應該設置為NONE