O7_DICTIONARY_ACCESSIBILITY引數

perfychi發表於2012-11-08
引用:http://blog.csdn.net/liaoyuanzi/article/details/7991001
 

O7_DICTIONARY_ACCESSIBILITY引數

分類: oracle 77人閱讀 評論(0) 收藏 舉報
O7_DICTIONARY_ACCESSIBILITY引數控制對資料字典的訪問.設定為true,如果使用者被授予瞭如select any table等any table許可權,使用者即使不是dba或sysdba使用者也可以訪問資料字典.在9i及以上版本預設為false,8i及以前版本預設為true.如果設定為true就可能會帶來安全上的一些問題.這也就為什麼O7_DICTIONARY_ACCESSIBILITY 設定為false時,sys不能以normal方式登入的原因.實驗如下:


SQL> show parameter o7;

NAME TYPE VALUE 
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY boolean FALSE 
SQL> create user test identified by test ;

使用者已建立。

SQL> grant resource,connect to test;

授權成功。

SQL> connect test/test;
已連線。

SQL> select count(*) from v$datafile;
select count(*) from v$datafile
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在


SQL> connect / as sysdba;
已連線。
SQL> grant select any table to test;

授權成功。

SQL> connect test/test;
已連線。



--即使授了select any table也無法查詢V$檢視


SQL> select count(*) from v$datafile;
select count(*) from v$datafile
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在



SQL> connect / as sysdba;
已連線。

SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;

系統已更改。

SQL> startup force
ORACLE 例程已經啟動。

Total System Global Area 838860800 bytes 
Fixed Size 1251776 bytes 
Variable Size 260048448 bytes 
Database Buffers 570425344 bytes 
Redo Buffers 7135232 bytes 
資料庫裝載完畢。
資料庫已經開啟。



--設定為true就可以訪問V$檢視了
SQL> connect test/test;
已連線。

SQL> select count(*) from v$datafile;

COUNT(*) 
---------- 
20 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-748687/,如需轉載,請註明出處,否則將追究法律責任。

相關文章