初始化引數O7_DICTIONARY_ACCESSIBILITY
O7_DICTIONARY_ACCESSIBILITY也是和安全性有關的一個重要的初始化引數。這個引數用來控制資料字典訪問行為是否和Oracle 7中保持一致。
預設情況下,這個引數設定為FALSE,這時擁有ANY系統許可權的使用者並不能訪問SYS使用者下的物件,這些物件也包括資料字典。
SQL> SHOW PARAMETER O7
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY boolean FALSE
SQL> CREATE USER U1 IDENTIFIED BY P_U1;
使用者已建立。
SQL> GRANT CONNECT TO U1;
授權成功。
SQL> GRANT SELECT ANY TABLE TO U1;
授權成功。
SQL> SHOW USER
USER 為 "SYS"
SQL> CREATE TABLE T_SYS (ID NUMBER);
表已建立。
SQL> CONN U1/P_U1
已連線。
SQL> SELECT * FROM SYS.T_SYS;
SELECT * FROM SYS.T_SYS
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
SQL> SELECT * FROM DBA_TABLES;
SELECT * FROM DBA_TABLES
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
SQL> SELECT * FROM V$SESSION;
SELECT * FROM V$SESSION
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
SQL> SELECT COUNT(*) FROM SYSTEM.HELP;
COUNT(*)
----------
978
即使擁有SELECT ANY TABLE系統許可權,由於O7_DICTIONARY_ACCESSIBILITY引數設定為FALSE,使用者也無法訪問包括資料字典和動態檢視在內的SYS使用者下的物件。而其他使用者下的物件則都可以訪問。
其中資料字典的訪問可以透過SELECT_CATALOG_ROLE角色授予:
SQL> CONN / AS SYSDBA
已連線。
SQL> GRANT SELECT_CATALOG_ROLE TO U1;
授權成功。
SQL> CONN U1/P_U1
已連線。
SQL> SELECT COUNT(*) FROM DBA_TABLES;
COUNT(*)
----------
1196
SQL> SELECT COUNT(*) FROM V$SESSION;
COUNT(*)
----------
24
SQL> SELECT * FROM SYS.T_SYS;
SELECT * FROM SYS.T_SYS
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
但是SYS使用者下的其他表,使用者仍然沒有許可權訪問。
如果將O7_DICTIONARY_ACCESSIBILITY設定為TRUE,則擁有ANY系統許可權的使用者可以訪問SYS使用者下的物件:
SQL> CONN / AS SYSDBA
已連線。
SQL> REVOKE SELECT_CATALOG_ROLE FROM U1;
撤銷成功。
SQL> ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY = TRUE SCOPE = SPFILE;
系統已更改。
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> STARTUP
ORACLE 例程已經啟動。
Total System Global Area 1258291200 bytes
Fixed Size 2040280 bytes
Variable Size 318774824 bytes
Database Buffers 922746880 bytes
Redo Buffers 14729216 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> CONN U1/P_U1
已連線。
SQL> SELECT COUNT(*) FROM DBA_TABLES;
COUNT(*)
----------
1196
SQL> SELECT COUNT(*) FROM V$SESSION;
COUNT(*)
----------
23
SQL> SELECT * FROM SYS.T_SYS;
未選定行
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-674377/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初始化引數O7_DICTIONARY_ACCESSIBILITY(二)
- O7_DICTIONARY_ACCESSIBILITY引數
- oracle O7_DICTIONARY_ACCESSIBILITY 引數Oracle
- 有關引數o7_DICTIONARY_ACCESSIBILITY!
- 關於引數O7_DICTIONARY_ACCESSIBILITY
- 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指令碼
- 【oracle DB安全性】保護資料字典引數O7_DICTIONARY_ACCESSIBILITYOracle
- 4.2.1.3 學習如何管理初始化引數
- 0607-引數初始化策略
- webpack 流程解析(2):引數初始化完成Web
- 初始化引數REMOTE_LOGIN_PASSWORDFILEREM
- ORACLE初始化引數檔案介紹Oracle
- RCU-資料庫初始化引數資料庫
- Oracle 並行相關的初始化引數Oracle並行
- Oracle USE_LARGE_PAGES初始化引數Oracle
- Oracle SQL92_SECURITY初始化引數OracleSQL
- Oracle初始化引數設定new(轉)Oracle
- 查詢初始化引數的方法(二)
- 查詢初始化引數的方法(一)
- 查詢初始化引數的方法(七)
- 查詢初始化引數的方法(六)
- 查詢初始化引數的方法(五)
- 查詢初始化引數的方法(四)
- 查詢初始化引數的方法(三)
- MogDB 2.1.1 初始化引數概要說明
- java 執行緒池的初始化引數解釋和引數設定Java執行緒