Oracle でリスナー経由でsysユーザーでログインしたい場合、以下の通り設定する必要がある。
- パスワードファイルを作成する
- REMOTE_LOGIN_PASSWORDFILE=shared or exclusive
REMOTE_LOGIN_PASSWORDFILE には以下の値を指定することができる。
- none: パスワードファイルを使用できない。
- shared: パスワードファイルを使用できる。複数のデータベースでパスワードファイルを共有できる。
- exclusive: パスワードファイルを使用できる。複数のデータベースでパスワードファイルを共有できない。
none の場合、リスナー経由でsysユーザーでログインすることはできない。shared か exclusive ならできる。shared と exclusive の違いは複数のデータベースでパスワードファイルを共有できるか否か。
実際に試してみる。
- 初期化パラメータREMOTE_LOGIN_PASSWORDFILEの値を確認する。
select value from v$parameter where name ='remote_login_passwordfile'; VALUE -------------------------------------------------------------------------------- EXCLUSIVE
- リスナー経由でsysユーザーでログインしようとすると失敗する。
$ sqlplus sys/oracle@orcl as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jun 4 21:02:45 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. ERROR: ORA-01031: insufficient privileges Enter user-name:
- パスワードファイルを作成する。
$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle
- リスナー経由でsysユーザーでログインできるようになる。
$ sqlplus sys/oracle@orcl as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jun 4 21:03:33 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Release 10.2.0.4.0 - Production SQL>