ablog

不器用で落着きのない技術者のメモ

初期化パラメータ"O7_DICTIONARY_ACCESSIBILITY"の"O7"

初期化パラメータ"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スキーマ内のオブジェクトにアクセスする必要がある場合は、オブジェクト権限が明示的に付与されている必要があります。また、データベース管理者に付与される次のロールでも、ディクショナリ・オブジェクトへのアクセスが許可されます。

  • SELECT_CATALOG_ROLE
  • EXECUTE_CATALOG_ROLE
  • DELETE_CATALOG_ROLE
NLS_TERRITORY