キャッシュ・グループの権限

キャッシュ・グループには特定のユーザーおよび権限が必要です。

キャッシュ・グループのユーザーおよび権限について

キャッシュ・グループに対するシステム権限およびオブジェクト権限があります。ユーザーがキャッシュ・グループに関係する操作を実行するためには、適切なキャッシュ・グループ権限を持っている必要があります。

また、管理ユーザー、つまりOracleキャッシュ管理ユーザーおよびTimesTenキャッシュ管理ユーザーがあり、特別な権限が必要です。「キャッシュ・グループ・ユーザー」を参照してください。

キャッシュ・グループ処理のためのシステム権限とオブジェクト権限の完全なリストは、『Oracle TimesTen In-Memory Database SQLリファレンス』権限を参照してください。

ノート:

パススルーの場合、権限はOracleデータベースによってユーザー資格証明を使用してチェックされるため、キャッシュ・グループ権限は必要ありません。

Oracleキャッシュ管理ユーザー権限

Oracleキャッシュ管理ユーザーに、キャッシュ操作の実行に必要な最小限の権限セットを付与するには、Oracle Databaseで、SYSユーザーとしてtimesten_home/install/oraclescriptsディレクトリでSQL*PlusスクリプトgrantCacheAdminPrivileges.sqlを実行します。

詳細は、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』Oracle Databaseユーザーへの権限の付与を参照してください。

TimesTenキャッシュ管理ユーザー権限

TimesTenのキャッシュ管理ユーザーに必要な権限はCACHE_MANAGERシステム権限です。これにより、ユーザーは必要なキャッシュ・グループ処理を実行できます。

TimesTenキャッシュ管理ユーザーが読取り専用キャッシュ・グループの初期ロードを実行したり、読取り専用キャッシュ・グループの自動リフレッシュ状態を変更するには、CACHE_MANAGER権限が必要です。(初期ロードを実行すると、キャッシュ・グループの自動リフレッシュの状態が一時停止からオンに暗黙的に変更されます。)

個々のキャッシュ・グループ処理権限の完全なリストは、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』キャッシュ操作に必要な権限を参照してください。

これは、CACHE_MANAGER権限をpatに付与します。

Command> GRANT CACHE_MANAGER TO pat;

ノート:

ASYNCHRONOUS WRITETHROUGH(AWT)キャッシュ・グループは、キャッシュ・グループとレプリケーションの両方の機能を持ちます。CACHE_MANAGER権限は、AWTキャッシュ・グループの作成に必要なすべての権限を付与します。

その他のキャッシュ・ユーザーの権限

特定のキャッシュ・グループ権限は、他のユーザー(非管理ユーザー)に必要です。

非管理キャッシュ・ユーザー

キャッシュ・グループまたはキャッシュ表に対する処理(キャッシュ・グループのロードやキャッシュ表の更新など)は、十分な権限を持ついずれのTimesTenユーザーでも実行できます。

これらのユーザーには、キャッシュされたOracle Database表から選択して更新する権限を持つ、同じ名前の対応するOracle Databaseユーザーが必要です。

『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』TimesTenユーザーの作成およびTimesTenユーザーへの権限の付与を参照してください。

キャッシュ・グループのシステム権限

キャッシュ・グループのシステム権限を持つユーザーは、データベース全体でキャッシュ・グループ・オブジェクトを操作できます。

  • キャッシュ・グループを作成するには、CREATE CACHE GROUPシステム権限またはCREATE ANY CACHE GROUPシステム権限が必要です。さらに、基礎となるキャッシュ表を作成するには、その表を自分が所有するかどうかに応じて、CREATE ANY TABLE権限またはCREATE TABLE権限のいずれかが付与される必要があります。

  • 自分が所有していないキャッシュ・グループを破棄または変更する場合、ユーザーには、適宜DROP ANY CACHE GROUP権限またはALTER ANY CACHE GROUP権限が付与されている必要があります。さらに、ユーザーが、自分が所有していない基礎となるキャッシュ表を破棄するには、DROP ANY TABLE権限を付与される必要があります。

たとえば、次の例では、データベースに含まれる任意のキャッシュ・グループを変更する権限をユーザーに付与します。

Command> GRANT ALTER ANY CACHE GROUP TO pat;

これらのキャッシュ・グループのシステム権限は、ユーザーが所有していないオブジェクトに対する操作用です。

  • FLUSH ANY CACHE GROUP

  • LOAD ANY CACHE GROUP

  • UNLOAD ANY CACHE GROUP

  • REFRESH ANY CACHE GROUP

キャッシュ・グループのオブジェクト権限

キャッシュ・グループ処理のオブジェクト権限により、ユーザーは、自分が所有していない特定のキャッシュ・グループに対して特定の処理を実行できます。

使用可能なキャッシュ・グループのオブジェクト権限は次のとおりです。

  • FLUSH

  • LOAD

  • UNLOAD

  • REFRESH

この例では、terryが所有するキャッシュ・グループcachegrpに対してFLUSHを実行するために、patにキャッシュ・グループ・オブジェクト権限を付与します。

Command> GRANT FLUSH ON terry.cachegrp TO pat;

『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』TimesTenとOracle Databases間での変更の転送方法を参照してください。