ablog

不器用で落着きのない技術者のメモ

リスナー経由でsysユーザーでログインする

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> 


[参考]
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05771-03/initparams.htm#98524