Oracle DB Password file 與 remote_login_passwordfile參數


在$ORACE_HOME/dbs/有一個密碼文件檔(Password File),名稱為orapw.ora。
有了Password file及參數remote_login_passwordfile,使用者才能以遠端用sysdba/sysoper的特權模式登入。

remote_login_passwordfile的設定值:
NONE--不使用Password file
EXCLUSIVE--使用Password file
SHARED--多個DB共享一個Password file,但只可以識別sys用戶

如果 remote_login_passwordfile='EXCLUSIVE' ,但是卻沒有Password file時,
其效果與remote_login_passwordfile='NONE'是一樣的。


實驗一,更改remote_login_passwordfile:

  在Client端以sqlplus登入
  SQL> connect sys/oracle@testdb as sysdba
  Connected.

  編輯$ORACLE_HOME/dbs/init.ora,將*.remote_login_passwordfile='EXCLUSIVE'
  修改成 *.remote_login_passwordfile='NONE'

  重新啟用Oracle DB
  SQL> shutdown immediate;
  SQL> startup pfile=?/dbs/init.ora

  SQL> show parameter remote_login_passwordfile

  NAME                                       TYPE       VALUE
  ------------------------------------ ----------- ------------------------------
  remote_login_passwordfile               string       NONE

  在Client端以sqlplus登入,結果是無法登入。
  SQL> connect sys/oracle@testdb as sysdba
  ERROR:
  ORA-01017: invalid username/password; logon denied


實驗二,更改Password File

  在Client端以sqlplus登入
  SQL> connect sys/oracle@testdb as sysdba
  Connected.

  將Password File更名
  $ cd $ORACLE_HOME/dbs
  $ mv orapw bk_orapw

  在Client端以sqlplus登入,結果無法登入
  SQL> connect sys/oracle@testdb as sysdba
  ERROR:
  ORA-01031: insufficient privileges