CREATE RLS POLICY - Amazon Redshift

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

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

CREATE RLS POLICY

建立新的資料列層級安全性政策,以提供資料庫物件的精細存取權。

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

語法

CREATE RLS POLICY policy_name [ WITH (column_name data_type [, ...]) [ [AS] relation_alias ] ] USING ( using_predicate_exp )

參數

policy_name

政策的名稱。

WITH (column_name data_type [, ...])

指定參考政策附加資料表資料欄的 column_namedata_type

只有當 RLS 政策未參考任何附加政策的資料表資料欄時,您才可以省略 WITH 子句。

AS relation_alias

為要附加 RLS 政策的資料表指定選擇性別名。

USING ( using_predicate_exp )

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

使用須知

使用 CREATE RLS POLICY 陳述式時,請注意以下內容:

  • Amazon Redshift 支援篩選,這些篩選可以是查詢中 WHERE 子句的一部分。

  • 所有附加至資料表的政策都必須使用相同的資料表別名建立。

  • 您必須使用 GRANT 和 REVOKE 陳述式,明確授予和撤銷參考查詢資料表之 RLS 政策的 SELECT 許可。查閱資料表是在政策定義中使用的資料表物件。如需詳細資訊,請參閱GRANTREVOKE

  • Amazon Redshift 資料列層級安全性不支援在政策定義中使用下列物件類型:目錄資料表、跨資料庫關聯性、外部資料表、一般檢視、後期繫結檢視、開啟 RLS 政策的資料表和暫存資料表。

範例

下列範例會建立名為 policy_concerts 的 RLS 政策。此政策適用於稱為 catgroup 的 VARCHAR(10) 資料欄,並將 USING 篩選條件設定為僅傳回 catgroup 值為 的資料列'Concerts'

CREATE RLS POLICY policy_concerts WITH (catgroup VARCHAR(10)) USING (catgroup = 'Concerts');

如需使用 RLS 政策的end-to-end範例,請參閱 資料列層級安全性end-to-end範例