SQLNET.AUTHENTICATION_SERVICES說明

wzq609發表於2014-06-03

背景說明:在windodws平臺上面的一臺資料庫透過sqlplus / as sysdba的方式登入的的時候報ORA-01031:許可權不足的錯誤。$ORACLE_HOME/network/admin/sqlnet.ora,SQLNET.AUTHENTICATION_SERVICES = (None),把這個修改成SQLNET.AUTHENTICATION_SERVICES = (NTS)即可;

以下SQLNET.AUTHENTICATION_SERVICES的引數說明,來自ORACLE11G的聯機文件

 

PurposeTo enable one or more authentication services. If authentication has been installed, then it is recommended that this parameter be set to either none or to one of the authentication methods.

提供多種驗證的方法:透過作業系統、資料庫等

DefaultNone   預設值是None值

 

備註:When installing the database with Database Configuration Assistant (DBCA), this parameter may be set to nts in the sqlnet.ora file.

(當透過DBCA建立資料庫的時候,sqlnet.ora預設值就是NTS)

 

Values:Authentication Methods Available with Oracle Net Services

  • none for no authentication methods, including Microsoft Windows native operating system authentication. WhenSQLNET.AUTHENTICATION_SERVICES is set to none, a valid user name and password can be used to access the database.(設定成NONE值時,關閉作業系統的驗證方法,需要透過使用者和密碼才能登入;
  • all for all authentication methods.
  • nts for Microsoft Windows native operating system authentication.  這個引數只在WIND平臺有效

Authentication Methods Available with Oracle Advanced Security(其他驗證的方法,可以透過購買ORACLE其他的軟體去實現):

 

  • kerberos5 for Kerberos authentication.
  • radius for RADIUS authentication.
  • tcps for SSL authentication.

 

以下是在測試時候的個人總結:

1、在windows下,SQLNET.AUTHENTICATION_SERVICES必須設定為NTS或者ALL才能使用OS認證;不設定或者設定為其他任何值都不能使用OS認證。2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值設定為ALL,或者不設定的情況下,OS驗證才能成功;設定為 其他任何值都不能使用OS認證。

3.客戶端和伺服器SQLNET.AUTHENTICATION_SERVICES的值不能同時設定為ALL,否則會報錯。

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN

ORACLE技術部落格:ORACLE 獵人筆記               資料庫技術群:367875324 (請備註ORACLE管理 )  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12679300/viewspace-1174910/,如需轉載,請註明出處,否則將追究法律責任。