初始化引數REMOTE_LOGIN_PASSWORDFILE
初始化引數REMOTE_LOGIN_PASSWORDFILE設定Oracle資料庫的密碼驗證方式。
這個引數最常見的設定為EXCLUSIVE,這也是資料庫的預設設定:
bash-3.00$ ls -l orapwtest1
-rw-r----- 1 oracle oinstall 1536 Apr 14 14:12 orapwtest1
bash-3.00$ export ORACLE_SID=test1
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 4月 16 17:23:32 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> show parameter remote_login
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
SQL> grant sysdba to test;
授權成功。
SQL> host
$ cd $ORACLE_HOME/dbs
$ ls -l orapwtest1
-rw-r----- 1 oracle oinstall 1536 Apr 16 17:24 orapwtest1
$ strings orapwtest1
Z[\]
ORACLE Remote Password file
INTERNAL
8D7F004CD7D32C58
D3CE9AB10E42F19D
TEST
7A0F2B316C212D67
如果將REMOTE_LOGIN_PASSWORDFILE設定為NONE,則禁止密碼檔案驗證方式,新增SYSDBA許可權的時候系統會報錯:
$ exit
SQL> conn test/test@test1 as sysdba
已連線。
SQL> alter system set remote_login_passwordfile = none scope = spfile sid = 'test1';
系統已更改。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> conn test/test@test1 as sysdba
ERROR:
ORA-12514: TNS: 監聽程式當前無法識別連線描述符中請求的服務
SQL> conn / as sysdba
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 776896512 bytes
Fixed Size 2098776 bytes
Variable Size 212523432 bytes
Database Buffers 557842432 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> grant sysoper to test;
grant sysoper to test
*
第 1 行出現錯誤:
ORA-01994: GRANT 失敗: 口令檔案缺失或已禁用
SQL> show parameter remote_login
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string NONE
可以看到將REMOTE_LOGIN_PASSWORDFILE設定為NONE,嘗試使用密碼檔案驗證方式登陸會失敗,且授權或回收SYSDBA、SYSOPER許可權會失敗。
如果將REMOTE_LOGIN_PASSWORDFILE設定為SHARED,則任何使用這個密碼檔案的資料庫都不能進行授權回收SYSDBA、SYSOPER許可權的操作,但是這些資料庫可以使用這個密碼檔案來進行驗證。
這種方式一般用於管理RAC資料庫,或者同一臺伺服器上的多個不同資料庫例項。
下面看一下將REMOTE_LOGIN_PASSWORDFILE設定為SHARED的情況:
SQL> alter system set remote_login_passwordfile = shared scope = spfile sid = 'test1';
系統已更改。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> conn / as sysdba
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 776896512 bytes
Fixed Size 2098776 bytes
Variable Size 212523432 bytes
Database Buffers 557842432 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> conn test/test@test1 as sysdba
已連線。
SQL> grant sysoper to test;
grant sysoper to test
*
第 1 行出現錯誤:
ORA-01999: 口令檔案不能在 SHARED 模式下更新
SQL> show parameter remote_login
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string SHARED
SQL> exit
從 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options 斷開
bash-3.00$ mv orapwractest1 orapwractest1.bak
bash-3.00$ ln orapwtest1 orapwractest1
bash-3.00$ ls -l orapwractest1
-rw-r----- 2 oracle oinstall 1536 Apr 16 17:24 orapwractest1
bash-3.00$ export ORACLE_SID=ractest1
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 4月 16 18:07:35 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 1603887104 bytes
Fixed Size 2095208 bytes
Variable Size 741722008 bytes
Database Buffers 855638016 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> conn test/test@ractest1 as sysdba
已連線。
SQL> grant sysoper to test1;
grant sysoper to test1
*
第 1 行出現錯誤:
ORA-01917: 使用者或角色 'TEST1' 不存在
SQL> grant sysoper to test;
授權成功。
SQL> conn test/test@test1 as sysoper
已連線。
可以看到使用SHARED方式啟動的資料庫,可以利用密碼檔案進行驗證,但是不能授權或回收SYSDBA和SYSOPER許可權。
隨後,啟動另一個資料庫,且將這個資料庫的密碼檔案指向剛才test資料庫所使用的密碼檔案,這樣兩個資料庫就共享了同一個密碼檔案了。
不過對於TEST資料庫,採用了SHARED方式,因此不能執行SYSDBA和SYSOPER的授權,而對於RACTEST資料庫,採用了預設的REMOTE_LOGIN_PASSWORDFILE設定,因此可以對這個密碼檔案進行修改,而這個修改在另外的資料庫中,可以馬上生效。
如果將RACTEST資料庫也設定為SHARED方式啟動,那麼沒有資料庫可以修改這個密碼檔案了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496894/viewspace-2134983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Remote_login_passwordfile引數探究REM
- 關於REMOTE_LOGIN_PASSWORDFILE引數REM
- 【引數】REMOTE_LOGIN_PASSWORDFILE引數三種取值及其行為特性分析REM
- REMOTE_LOGIN_PASSWORDFILE引數和ORAPW密碼檔案REM密碼
- oracle初始化引數Oracle
- Oracle幾個初始化引數Oracle
- Oracle RAC初始化引數管理Oracle
- oracle 常見初始化引數Oracle
- ORACLE初始化引數的配置Oracle
- 2.6.2.2 初始化引數DB_DOMAINAI
- 2.6.1.1 初始化引數檔案示例
- Oracle初始化引數的來源Oracle
- ORACLE初始化引數:AUDIT_TRAILOracleAI
- Oracle FILESYSTEMIO_OPTIONS初始化引數Oracle
- 初始化引數REMOTE_OS_AUTHENTREM
- 【SQL優化器】初始化引數SQL優化
- Linux系統初始化*引數初始化(指令碼)Linux指令碼
- 4.2.1.3 學習如何管理初始化引數
- 0607-引數初始化策略
- webpack 流程解析(2):引數初始化完成Web
- ORACLE初始化引數檔案介紹Oracle
- RCU-資料庫初始化引數資料庫
- Oracle 並行相關的初始化引數Oracle並行
- Oracle USE_LARGE_PAGES初始化引數Oracle
- Oracle SQL92_SECURITY初始化引數OracleSQL
- Oracle初始化引數設定new(轉)Oracle
- 查詢初始化引數的方法(二)
- 查詢初始化引數的方法(一)
- 查詢初始化引數的方法(七)
- 查詢初始化引數的方法(六)
- 查詢初始化引數的方法(五)
- 查詢初始化引數的方法(四)
- 查詢初始化引數的方法(三)
- MogDB 2.1.1 初始化引數概要說明
- ORACLE中的許可權/角色/DBA/SYSDBA以及remote_login_passwordfile引數的作用OracleREM
- java 執行緒池的初始化引數解釋和引數設定Java執行緒
- 2.6.1.2 平文字初始化引數檔案格式
- 2.4.5 Step 4: 建立初始化引數檔案