SQL> show parameter o7;
NAME
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY
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
Fixed Size
Variable Size
Database Buffers
Redo Buffers
数据库装载完毕。
数据库已经打开。
--设置为true就可以访问V$视图了
SQL> connect test/test;
已连接。
SQL> select count(*) from v$datafile;
----------
SQL> spool off;
本文深入探讨了Oracle数据库中O7_DICTIONARY_ACCESSIBILITY参数的功能及其对数据字典访问的影响。通过实验展示了在不同设置下用户权限与访问数据字典之间的关系,强调了安全配置的重要性。特别指出当该参数设置为true时,非dba用户可能获得额外的访问权限,可能引发的安全问题,并提供了实际操作步骤来验证这一特性。
1003

被折叠的 条评论
为什么被折叠?



