複数のユーザーがデータベース・オブジェクトにアクセス可能な場合、これらのオブジェクトへの認可は権限を使用して制御できます。オブジェクトには必ず所有者が存在します。あるユーザーが他のユーザーによって所有されているオブジェクトを変更できるかどうかは、権限によって制御されます。権限の付与または取消しを実行できるのはインスタンス管理者、ADMIN
権限を持つユーザー、または特定のオブジェクトに対する権限の場合は、そのオブジェクトの所有者です。
Oracle TimesTen In-Memory Databaseセキュリティ・ガイドの権限の付与と取消しでは、様々なオブジェクトに対する権限の付与および取消しの詳細を説明しています。また、次の各項に、TimesTenの操作を実行するために必要なすべての権限についてのクイック・リファレンスを示します。
システム権限とは、特定のアクションを実行したり、特定のタイプのオブジェクトでアクションを実行する権限のことです。オブジェクトには、表、ビュー、マテリアライズド・ビュー、シノニム、索引、順序、キャッシュ・グループ、レプリケーション・スキームと、PL/SQLファンクション、プロシージャおよびパッケージがあります。インスタンス管理者またはADMIN
権限を持つユーザーのみが、システム権限の付与または取消しを行うことができます。
表7-1 システム権限
権限 | 説明 |
---|---|
ユーザーはチェックポイント、バックアップ、移行、ユーザーの作成と削除などの管理タスクを実行できます。 |
|
ユーザーはデータベース内の任意のキャッシュ・グループを変更できます。 |
|
ユーザーはデータベース内の任意の索引を変更できます。 ノート: |
|
ユーザーはデータベース内の任意のマテリアライズド・ビューを変更できます。 ノート: |
|
ユーザーはデータベース内の任意のPL/SQLプロシージャ、ファンクションまたはパッケージを変更できます。 |
|
ユーザーはデータベース内の任意の順序を変更できます。 |
|
ユーザーはデータベース内の任意の表を変更できます。 |
|
ユーザーはデータベース内の任意のビューを変更できます。 ノート: |
|
ユーザーはキャッシュ・グループに関連する操作を実行できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有するキャッシュ・グループを作成できます。 |
|
ユーザーはデータベース内の任意の表またはマテリアライズド・ビューに索引を作成できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有するマテリアライズド・ビューを作成できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有するPL/SQLプロシージャ、ファンクションまたはパッケージを作成できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有する順序を作成できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有するプライベート・シノニムを作成できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有する表を作成できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有するビューを作成できます。 |
|
ユーザーはユーザー自身が所有するキャッシュグループを作成できます。 |
|
ユーザーはユーザー自身が所有するマテリアライズド・ビューを作成できます。 |
|
ユーザーはユーザー自身が所有するPL/SQLプロシージャ、ファンクションまたはパッケージを作成できます。 |
|
ユーザーはパブリック・シノニムを作成できます。 |
|
ユーザーはユーザー自身が所有する順序を作成できます。 |
|
ユーザーはデータベースへの接続を作成できます。 |
|
ユーザーはプライベート・シノニムを作成できます。 |
|
ユーザーはユーザー自身が所有する表を作成できます。 |
|
ユーザーはユーザー自身が所有するビューを作成できます。 |
|
ユーザーはデータベース内の任意の表からの削除を行うことができます。 |
|
ユーザーはデータベース内の任意のキャッシュ・グループを削除できます。 |
|
ユーザーはデータベース内の任意の索引を削除できます。 |
|
ユーザーはデータベース内の任意のマテリアライズド・ビューを削除できます。 |
|
ユーザーはデータベース内の任意のPL/SQLプロシージャ、ファンクションまたはパッケージを削除できます。 |
|
ユーザーはデータベース内の任意の順序を削除できます。 |
|
ユーザーはデータベース内の任意のユーザーが所有するシノニムを削除できます。 |
|
ユーザーはデータベース内の任意の表を削除できます。 |
|
ユーザーはデータベース内の任意のビューを削除できます。 |
|
ユーザーはパブリック・シノニムを削除できます。 |
|
ユーザーはデータベース内の任意のPL/SQLプロシージャ、ファンクションまたはパッケージを実行できます。 |
|
ユーザーはデータベース内の任意のキャッシュ・グループをフラッシュできます。 |
|
ユーザーはデータベース内の任意の表に挿入できます。また、ユーザーは(パブリックまたはプライベート)シノニムを使用して、その表に任意の表を挿入できます。 |
|
ユーザーはデータベース内の任意のキャッシュ・グループをロードできます。 |
|
ユーザーはデータベース内の任意のキャッシュ・グループをフラッシュできます。 |
|
ユーザーはデータベース内の任意の順序または順序上のシノニムを選択できます。 |
|
ユーザーはデータベース内の任意の表、ビュー、マテリアライズド・ビューまたはシノニムを選択できます。 |
|
ユーザーはデータベース内の任意のキャッシュ・グループをアンロードできます。 |
|
ユーザーはデータベース内の任意の表またはシノニムを更新できます。 |
|
ユーザーはXLAリーダーとしてデータベースに接続できます。 |
オブジェクト権限とは、オブジェクトで特定のアクションを実行したり、別のユーザーのオブジェクトにアクセスする権限のことです。オブジェクトには、表、ビュー、マテリアライズド・ビュー、索引、シノニム、順序、キャッシュ・グループ、レプリケーション・スキームと、PL/SQLファンクション、プロシージャおよびパッケージがあります。
オブジェクトの所有者には、そのオブジェクトに対するすべてのオブジェクト権限があり、これらの権限は取り消しできません。オブジェクトの所有者は、そのオブジェクトに対するオブジェクト権限を他のデータベース・ユーザーに付与できます。ADMIN
権限を持つユーザーは、権限が付与されているオブジェクトについて、そのオブジェクトを所有しないユーザーに対してオブジェクト権限を付与したり、取り消すことができます。
表7-2 オブジェクト権限
権限 | オブジェクト型 | 説明 |
---|---|---|
表 |
ユーザーは表からの削除を行うことができます。 |
|
PL/SQLパッケージ、プロシージャまたはファンクション |
ユーザーはPL/SQLパッケージ、プロシージャまたはファンクションを直接実行できます。 |
|
キャッシュ・グループ |
ユーザーはキャッシュ・グループをフラッシュできます。 |
|
表またはマテリアライズド・ビュー |
ユーザーは表またはマテリアライズド・ビューに索引を作成できます。 |
|
表またはシノニム |
ユーザーは表への挿入、またはシノニムを使用した表への挿入を行うことができます。 |
|
キャッシュ・グループ |
ユーザーはキャッシュ・グループをロードできます。 |
|
表またはマテリアライズド・ビュー |
ユーザーは表またはマテリアライズド・ビューの外部キーへの依存性を作成できます。 親表の |
|
キャッシュ・グループ |
ユーザーはキャッシュ・グループをリフレッシュできます。 |
|
表、順序、ビュー、マテリアライズド・ビューまたはシノニム |
ユーザーは表、順序、ビューまたはマテリアライズド・ビューまたはシノニムから選択できます。
ユーザーには、元表に対する |
|
キャッシュ・グループ |
ユーザーはキャッシュ・グループをアンロードできます。 |
|
表 |
ユーザーは表を更新できます。 |
権限によって、その他の権限が付与される場合があります。たとえば、ADMIN
権限によって、他のすべての権限が付与されます。CREATE ANY TABLE
システム権限によって、CREATE TABLE
オブジェクト権限が付与されます。表7-3に、権限の階層を示します。
キャッシュ・グループ権限には、ADMIN
によってCACHE_MANAGER
権限が付与される以外に、別の階層があります。
CACHE_MANAGER
権限によって、次の権限が付与されます。
CACHE_MANAGER
権限には、キャッシュ・エージェントおよびレプリケーション・エージェントを開始および停止する権限も含まれます。
CREATE ANY CACHE GROUP
によって、任意のキャッシュ・グループに対するCREATE CACHE GROUP
権限が付与されます。
データベースのすべてのユーザーには、PUBLIC
ロールがあります。新しく作成されたTimesTenデータベースでは、デフォルトで、PUBLIC
は各種のシステム表やシステム・ビュー、PL/SQLファンクション、プロシージャおよびパッケージに対してSELECT
権限およびEXECUTE
権限を持ちます。次の問合せを使用すると、オブジェクトのリストを表示できます。
SELECT table_name, privilege FROM sys.dba_tab_privs WHERE grantee='PUBLIC';
データベース作成の一部としてPUBLIC
に付与されている権限は取り消せません。これらの権限のリストを参照するには、次の問合せを使用します。
SELECT table_name, privilege FROM sys.dba_tab_privs WHERE grantor='SYS';