conn / as sysdba で接続できない | Oracle

オペレーティング・システム認証である conn / as sysdba で接続できない。なので、シェルでのdbstart、dbshutスクリプトコマンドも使えないので不便。

製品: Oracle Server - Enterprise Edition 

製品バージョン: 10.2.0.3.0 

プラットフォーム: Sun Solaris x86-64bit 

 

 

■connect / as sysdba できない症状を確認する

conn / as sysdbaできない。つまりオペレーティング・システム認証ができない状態であることを確認する。 

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

dbshutスクリプトコマンドの中のconn / as sysdbaが効かないので、dbshutしても元気にインスタンスが立ち上がったままという現象がおきている。

 

■調査する項目

・OSユーザのidコマンドを確認する。

・$ORACLE_HOME/rdbms/lib/config.s を確認する。

・$ORACLE_HOME/rdbms/lib/config.c を確認する。

・OSユーザーが、Oracleインストール時に指定したOSDBAグループに属しているかを確認する。

・/etc/hostsについてドメイン指定されているかを確認する。フルドメインの記述の追加で回避できる可能性がある。

 

 

■調査する

OSユーザーのidコマンドを実行する。 

$ id
uid=75016(orauser2) gid=876(hrdba) 

ウチの会社では、oracle, oinstall といった一般的な命名はしていません。 

 

config.sを確認する。(一部抜粋)

.LV13:	.string "dba"
.LV12: .string "dba"

 

以上の結果から、OSDBAである"dba"に所属していないことが分かる。

 

■解決する

OSDBAである"dba"にユーザを所属させる。

# usermod -G hrdba,dba orauser2 

 

■conn / as sysdbaで接続できるかを確認する

OSユーザーで、ログアウト、ログインし"dba"を有効にする。

SQL*Plusで確認する。

SQL> conn / as sysdba
Connected. 

 無事、接続できることを確認した。

 

■dbstart, dbshutできるかを確認する

OSユーザーで、インスタンスの起動と停止ができるかを確認する。

$ dbstart
$ dbshut

無事、起動と終了ができることを確認した。