O7_DICTIONARY_ACCESSIBILITY was an init parameter as far back as 8.0, but in 9.0 and above the default has changed to FALSE instead of TRUE. Which is why, by default, you cannot read any table owned by SYS.
System privilege SELECT ANY DICTIONARY (new in 9.0) will circumvent this "problem".
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>
> From the Reference Manual:
>
> For example, if O7_DICTIONARY_ACCESSIBILITY = 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 this parameter is set to false and you need to access
> objects in the SYS schema, then you must be granted explicit
> object privilege. Also, the
> following roles, which can be granted to the database
> administrator, also
> allow access to dictionary objects: SELECT_CATALOG_ROLE,
> EXECUTE_CATALOG_ROLE, and DELETE_CATALOG_ROLE.
>
> "Adams, Matthew (GECP, MABG, 088130)" <[EMAIL PROTECTED]>
>
>
> Previously, an account with the DBA role could
> directly query oracle's internal tables
> (user$, seg$, ts$, etc). Now in 9.2.0.2,
> it appears we can't. Does anybody know
> what version this changed in or where (or if)
> it was documented. A quick search on
> MetaLink came up empty.
