初期化パラメータ"O7_DICTIONARY_ACCESSIBILITY"の"O7"は"Oracle7"って意味ぽいというどうでもいいことに気付いた。
O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。
たとえば、O7_DICTIONARY_ACCESSIBILITYがfalseに設定されている場合、SELECT ANY TABLE権限によって、SYSスキーマ以外のスキーマ内のビューまたは表へのアクセスが許可されます(この場合、データ・ディクショナリにはアクセスできません)。システム権限のEXECUTE ANY PROCEDUREによって、SYSスキーマ以外のスキーマ内のプロシージャの実行が許可されます。
このパラメータがfalseに設定されており、SYSスキーマ内のオブジェクトにアクセスする必要がある場合は、オブジェクト権限が明示的に付与されている必要があります。また、データベース管理者に付与される次のロールでも、ディクショナリ・オブジェクトへのアクセスが許可されます。
NLS_TERRITORY
- SELECT_CATALOG_ROLE
- EXECUTE_CATALOG_ROLE
- DELETE_CATALOG_ROLE