RLS ポリシーの所有権と管理
スーパーユーザー、セキュリティ管理者、sys:secadmin ロールを持つユーザーのいずれかとして、テーブルのすべての RLS ポリシーを作成、修正、管理ができます。オブジェクトレベルでは、テーブルのスキーマ定義を修正せずに行レベルのセキュリティをオンまたはオフに切り替えることができます。
行レベルのセキュリティを開始するには、次の SQL ステートメントを使用できます。
ALTER TABLE ステートメントを使用して、テーブルの RLS をオンまたはオフに切り替えます。詳細については、「ALTER TABLE」を参照してください。
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_POLICY と SVV_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を参照してください。