ALTER RLS POLICY - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

ALTER RLS POLICY

修改資料表上現有的資料列層級安全性政策。

超級使用者和具有 sys:secadmin 角色的使用者或角色可以修改政策。

語法

ALTER RLS POLICY { policy_name | database_name.policy_name } USING ( using_predicate_exp );

Parameters

policy_name

政策的名稱。

database_name

政策建立來源的資料庫名稱。資料庫可以是連線的資料庫或支援 Amazon Redshift 聯合許可的資料庫。

USING ( using_predicate_exp )

指定套用至查詢中 WHERE 子句的篩選條件。Amazon Redshift 會在查詢層級使用者述詞之前套用政策述詞。例如,current_user = ‘joe’ and price > 10 會限制 Joe 只能查看價格大於 $10 的記錄。

在用來以 policy_name 名稱建立政策的 CREATE RLS POLICY 陳述式中,運算式可以存取其中 WITH 子句中宣告的變數。

如需在 Amazon Redshift 聯合許可目錄上使用 ALTER RLS POLICY,請參閱使用 Amazon Redshift 聯合許可管理存取控制

範例

下列範例會修改 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');