Wednesday, October 06, 2010

Use SELECT ANY DICTIONARY or SELECT_CATALOG_ROLE or O7_DICTIONARY_ACCESSIBILITY?

Oracle Roles

Use SELECT ANY DICTIONARY or SELECT_CATALOG_ROLE or O7_DICTIONARY_ACCESSIBILITY?


The init.ora O7_DICTIONARY_ACCESSIBILITY is still available in versions 9i,10g&11g, as well as the SELECT_CATALOG_ROLE role.


O7_DICTIONARY_ACCESSIBILITY=FALSE # default
SELECT_CATALOG_ROLE  provides access to all SYS views only
SELECT ANY DICTIONARY provides access to all dictionary views  # latest

Metalink Note : 153510.1

Test Case

sqlplus scott/tiger
grant select_catalog_role to scott;
revoke select_catalog_role from scott;

select * from v$instance;
select  username from dba_users;
select * from obj$ where rownum < 2;

grant select any dictionary to scott;
revoke select any dictionary from scott;

select * from v$instance;
select  username from dba_users;
select * from obj$ where rownum < 2;

Hope this helps. Regards Rupam