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


オペレーティングシステムがoracleユーザーの下でsqlplus/as sysdbaを使用してsqlplusにローカルに接続する場合、ORA-01031:insufficient privileges
OSバージョン情報の表示
[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は、OS認証を使用するにはNTSに設定する必要があります.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