ORA-01031: insufficient privileges問題解決辦法

      在操作系統本地在oracle用戶下使用sqlplus / as sysdba連接sqlplus的時候提示ORA-01031: insufficient privileges

查看操作系統版本信息

[oracle@OracleBak admin]$ lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.6 (Final)
Release:        6.6
Codename:       Final

正常本地登陸的時候應該不需要授權的,檢查sqlnet.ora文件,文件路徑爲$ORACLE_HOME/network/admin/sqlnet.ora,

[oracle@OracleBak admin]$ cat sqlnet.ora 
# sqlnet.ora Network Configuration File: /opt/ora11/product/11.2/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT)

檢查監聽和tnsping均正常,查閱資料後發現sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES

1、在windows下,SQLNET.AUTHENTICATION_SERVICES必須設置爲NTS才能使用OS認證;
不設置或者設置爲其他任何值都不能使用OS認證。

2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值設置爲ALL,或者不設置的情況下,OS驗證才能成功;

將此參數修改爲ALL後即可使用sqlplus / as sysdba;直接登陸了,可是使用sqlplus sys/oracle@orcl as sysdba;登陸的時候提示ORA-12641: Authentication service failed to initialize,將sqlnet.ora中的

SQLNET.AUTHENTICATION_SERVICES= (ALL)

這一行去掉之後再使用用戶名和密碼登陸可以正常登陸了

sqlnet.ora文件內容

# sqlnet.ora Network Configuration File: /opt/ora11/product/11.2/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

#SQLNET.AUTHENTICATION_SERVICES= (ALL)

NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT)

tnsnames.ora

# tnsnames.ora Network Configuration File: /opt/ora11/product/11.2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = OracleBak)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )


listener.ora

# listener.ora Network Configuration File: /opt/ora11/product/11.2/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = orcl)
  (SID_NAME = orcl)
  )
)

ORCL =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.10.242)(PORT = 1521))
    )
  )

ADR_BASE_GNNT = /opt/ora11


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章