Sunday, April 20, 2008

What is O7_DICTIONARY_ACCESSIBILITY and effect of it

•O7_DICTIONARY_ACCESSIBILITY is a boolean type parameter in Oracle.

•The default value of this parameter is false.

•If O7_DICTIONARY_ACCESSIBILITY is set to false, then the SELECT ANY TABLE privilege allows access to views or tables in any schema except the SYS schema (data dictionary tables cannot be accessed). The system privilege EXECUTE ANY PROCEDURE allows access on the procedures in any schema except the SYS schema.

•If you change the parameter to TRUE, then ANY really does mean ANY, and SELECT ANY TABLE privilege allows access to see the data dictionary as well as all user data including SYS schema.

•If this parameter is set to false and you need to access objects in the SYS schema, then you must be granted explicit object privileges.

•To allow to select data dictionary views and packages SELECT_CATALOG_ROLE roles in explicitly needed.

•SELECT ANY DICTIONARY privilege lets you selectively override the default FALSE setting of the O7_DICTIONARY_ACCESSIBILITY initialization parameter.

•O7_DICTIONARY_ACCESSIBILITY is a static parameter. So if you use spfile then after setting it by
SQL>ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=TRUE SCOPE=SPFILE; you need to restart your database in order to take affect.

Related Documents:
Difference between select any dictionary and select any Table

4 comments:

  1. Thank you for your clear description.

    ReplyDelete
  2. It worked. Great.

    NNJ

    ReplyDelete
  3. I set O7_DICTIONARY_ACCESSIBILITY to true and REMOTE_LOGIN_PASSWORDFILE=none and I cannot log in remotely as sysdba. So this is a bit misleading.

    ReplyDelete
  4. Thank you !

    now sys user is wokring :)

    ReplyDelete