詳細なアクセス制御を行うための権限

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、詳細なアクセス制御のためにデータベースのロールに付与できる権限について説明します。

データベースのロールと詳細なアクセス制御については、詳細なアクセス制御についてをご覧ください。

SELECT

ロールによってテーブルで SELECT ステートメントを実行できるようにします。列リストが指定されている場合、権限は対象の列でのみ有効です。列リストが指定されていない場合、特権はテーブルに追加されたすべての列を含め、テーブル内のすべての列に対して有効です。

  • テーブルの列のサブセットに SELECT を付与すると、FGAC ユーザーはそのテーブルで SELECT * を使用できなくなります。そのテーブルに対するクエリには、含めるすべての列に名前を付ける必要があります。

  • 生成された列に付与された SELECT は、基になるベース列に対する SELECT を付与しません。

  • インターリーブされたテーブルの場合、親テーブルに付与された SELECT は子テーブルには伝播されません。

  • SELECT が特定の列(SUM(col_a) など)に対する集計関数とともに使用されている場合、ロールにはその列に対する SELECT 権限が必要です。集計関数で COUNT(*) などの列が指定されていない場合、ロールにはテーブル内の少なくとも 1 つの列に対する SELECT 権限が必要です。

GRANT SELECT ON TABLE employees TO ROLE hr_director;

GRANT SELECT ON TABLE customers, orders, items TO ROLE account_mgr;

GRANT SELECT(name, level, cost_center, location, manager) ON TABLE employees TO ROLE hr_manager;

GRANT SELECT(name, address, phone) ON TABLE employees, contractors TO ROLE hr_rep;

上記の最後の例では、すべての名前付き列が両方のテーブルに存在する必要があります。

INSERT

指定したテーブルに行を挿入することを許可します。列リストが指定されている場合、権限はそれらの列に対してのみ有効です。列リストが指定されていない場合、権限はテーブル内のすべての列で有効です。

  • 列名を指定した場合、含まれていない列は挿入時にデフォルト値になります。

  • 生成された列には INSERT を付与することができません。

GRANT INSERT ON TABLE employees, contractors TO ROLE hr_manager;

GRANT INSERT(name, address, phone) ON TABLE employees TO ROLE hr_rep;

UPDATE

指定したテーブルの行の更新をロールに許可します。更新は、テーブル列のサブセットに限定できます。

  • このロールには、UPDATE 権限に加えて、すべてのキー列とクエリ対象のすべての列に対する SELECT 権限が必要です。クエリ対象の列には、WHERE 句の列と、更新された列の新しい値と生成された列のコンピューティングに使用される列が含まれます。

  • 生成された列には UPDATE を付与することができません。

GRANT UPDATE ON TABLE employees, contractors TO ROLE hr_manager;

GRANT UPDATE(name, address, phone) ON TABLE employees TO ROLE hr_rep;

DELETE

指定したテーブルから行を削除することをロールに許可します。

  • 列レベルで DELETE を付与することはできません。

  • また、ロールにはすべてのキー列と、クエリの WHERE 句に含まれる可能性のある列に対して SELECT も必要です。

  • インターリーブされたテーブルの場合、DELETE 権限は親テーブルでのみ必要です。子テーブルで ON DELETE CASCADE が指定されている場合は、子テーブルに対する DELETE 権限がなくても、子テーブルの行が削除されます。

GRANT DELETE ON TABLE employees, contractors TO ROLE admin;

詳細情報

詳しくは以下をご覧ください。