RLS ポリシーの所有権と管理 - Amazon Redshift

RLS ポリシーの所有権と管理

スーパーユーザー、セキュリティ管理者、sys:secadmin ロールを持つユーザーのいずれかに該当する場合は、RLS ポリシーを作成、修正、アタッチ、デタッチできます。RLS ポリシーは、テーブル、ビュー、遅延バインディングビュー (LBV)、マテリアライズドビュー (MV) にアタッチできます。オブジェクトレベルでは、テーブルのスキーマ定義を修正せずに行レベルのセキュリティをオンまたはオフに切り替えることができます。

行レベルのセキュリティを開始するには、次の SQL ステートメントを使用できます。

  • ALTER TABLE ステートメントを使用して、テーブル、ビュー、遅延バインディングビューに対する RLS のオンまたはオフを切り替えます。詳細については、「ALTER TABLE」を参照してください。

  • ALTER MATERIALIZED VIEW ステートメントを使用して、マテリアライズドビュー (MV) に対する RLS のオンまたはオフを切り替えます。詳細については、「ALTER MATERIALIZED VIEW」を参照してください。

  • CREATE RLS POLICY ステートメントを使用し、1 つ以上のテーブルのセキュリティポリシーを作成して、ポリシーに 1 つ以上のユーザーまたはロールを指定します。

    詳細については、「CREATE RLS POLICY」を参照してください。

  • ALTER RLS POLICY ステートメントを使用して、ポリシー定義の変更など、ポリシーを変更します。同じポリシーを複数のテーブルまたはビューに使用できます。

    詳細については、「RLS ポリシーの変更」を参照してください。

  • ATTACH RLS POLICY ステートメントを使用して、1 つ以上の関係、1 つ以上のユーザー、ロールのいずれかにポリシーをアタッチします。

    詳細については、「ATTACH RLS POLICY」を参照してください。

  • DETACH RLS POLICY ステートメントを使用して、1 つ以上の関係、1 つ以上のユーザー、ロールのいずれかからポリシーをデタッチします。

    詳細については、「DETACH RLS POLICY」を参照してください。

  • DROP RLS POLICY ステートメントを使用して、ポリシーを削除します。

    詳細については、「DROP RLS POLICY」を参照してください。

  • GRANT と REVOKE ステートメントを使用して、ルックアップテーブルを参照する RLS ポリシーの SELECT 許可を明示的に付与と取り消しを行います。詳細については、GRANTおよびREVOKEを参照してください。

作成されたポリシーをモニタリングするため、sys:secadmin は SVV_RLS_POLICYSVV_RLS_ATTACHED_POLICY を確認できます。

RLS で保護された関係のリストを表示するため、sys:secadmin は SVV_RLS_RELATION を確認できます。

RLS で保護された関係を参照するクエリの RLS ポリシーの適用を追跡するため、スーパーユーザー、sys:operator、ACCESS SYSTEM TABLE のシステム許可を持つ任意のユーザーのいずれかは SVV_RLS_APPLIED_POLICY を確認できます。sys:secadmin はデフォルトでこれらの許可が付与されていないことに注意してください。

RLS で保護された関係へのフルアクセスをユーザーに許可するには、IGNORE RLS アクセス許可を付与します。スーパーユーザーまたは sys:secadmin には、IGNORE RLS が自動的に付与されます。詳細については、「GRANT」を参照してください。

RLS 関連のクエリをトラブルシューティングするために EXPLAIN プランのクエリの RLS ポリシーフィルタを説明するには、EXPLAIN RLS 許可を任意のユーザーに付与できます。詳細については、GRANTおよびEXPLAINを参照してください。