RLS ポリシーの変更
テーブル上の既存の行レベルのセキュリティポリシーを変更します。
スーパーユーザーとユーザー、または sys:secadmin
ロールを持つロールは、ポリシーを変更できます。
構文
ALTER RLS POLICY policy_name USING ( using_predicate_exp );
パラメータ
- policy_name
-
ポリシーの名前。
- USING (using_predicate_exp)
-
クエリの WHERE 句に適用されるフィルターを指定します。Amazon Redshift は、クエリレベルのユーザー述語より先にポリシー述語を適用します。例えば、
current_user = ‘joe’ and price > 10
は Joe に対して価格が 10 USD を超えるレコードのみを表示するように制限します。この式は、policy_name という名前のポリシーの作成に使用された CREATE RLS POLICY ステートメントの WITH 句で宣言された変数にアクセスできます。
例
次の例では、RLS ポリシーを変更します。
-- First create an RLS policy that limits access to rows where catgroup is 'concerts'.
CREATE RLS POLICY policy_concerts
WITH (catgroup VARCHAR(10))
USING (catgroup = 'concerts');
-- Then, alter the RLS policy to only show rows where catgroup is 'piano concerts'.
ALTER RLS POLICY policy_concerts
USING (catgroup = 'piano concerts');