本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
政策相依物件和原則
為了提供應用程式的安全性,並防止政策物件過時或無效,Amazon Redshift 不允許捨棄或變更 RLS 政策所參照的物件。
以下列出 Amazon Redshift 針對 RLS 政策追蹤的結構描述物件相依性。
-
追蹤目標資料表的結構描述物件相依性時,Amazon Redshift 會遵循下列規則:
當您捨棄目標資料表時,Amazon Redshift 會將政策與關係、使用者、角色或公開分離。
當您重新命名目標資料表名稱時,附加的政策不會受到影響。
如果您先將政策捨棄或分離,您只能捨棄政策定義中參照的目標資料表資料欄。這也適用於指定 CASCADE 選項時。您可以捨棄目標資料表中的其他資料欄。
您無法重命名目標資料表的參照資料欄。若要重新命名參照的資料欄,請先將政策分離。這也適用於指定 CASCADE 選項時。
即使您指定 CASCADE 選項,也無法變更參照資料欄的類型。
追蹤查閱資料表的結構描述物件相依性時,Amazon Redshift 會遵循下列規則:
您無法捨棄查閱資料表。若要捨棄查閱資料表,請先捨棄參照查詢資料表的政策。
您無法重新命名查閱資料表。若要重新命名查閱資料表,請先捨棄參照查詢資料表的政策。這也適用於指定 CASCADE 選項時。
您無法捨棄政策定義中使用的查閱資料表資料欄。若要捨棄政策定義中使用的查閱資料表資料欄,請先捨棄參照查詢資料表的政策。這也適用於在 ALTER TABLE DROP COLUMN 陳述式中指定 CASCADE 選項時。您可以捨棄查閱資料表中的其他資料欄。
您無法重命名查閱資料表的參照資料欄。若要重新命名參照的資料欄,請先捨棄參照查詢資料表的政策。這也適用於指定 CASCADE 選項時。
您無法變更參照資料欄的類型。
捨棄使用者或角色時,Amazon Redshift 會自動分離附加到該使用者或角色的所有政策。
當您在 DROP SCHEMA 陳述式中使用 CASCADE 選項時,Amazon Redshift 也會捨棄結構描述中的關係。還會捨棄任何其他結構描述中依賴於已捨棄結構描述中關係的關係。對於政策中作為查閱資料表的關係,Amazon Redshift 會使 DROP SCHEMA DDL 失敗。對於 DROP SCHEMA 陳述式捨棄的任何關係,Amazon Redshift 會將所有附加到這些關係的政策分離。
您只能在捨棄政策時捨棄查詢函數 (政策定義中參照的函數)。這也適用於指定 CASCADE 選項時。
將政策附加至資料表時,Amazon Redshift 會檢查此資料表是否為不同政策中的查閱資料表。如果是這種情況,Amazon Redshift 將不允許在此資料表中附加政策。
建立 RLS 政策時,Amazon Redshift 會檢查此資料表是否為任何其他 RLS 政策的目標資料表。如果是這種情況,Amazon Redshift 將不允許在此資料表上建立政策。
範例
下列範例說明如何追蹤結構描述相依性。
-- The CREATE and ATTACH policy statements for `policy_events` references some
-- target and lookup tables.
-- Target tables are tickit_event_redshift and target_schema.target_event_table.
-- Lookup table is tickit_sales_redshift.
-- Policy `policy_events` has following dependencies:
-- table tickit_sales_redshift column eventid, qtysold
-- table tickit_event_redshift column eventid
-- table target_event_table column eventid
-- schema public and target_schema
CREATE RLS POLICY policy_events
WITH (eventid INTEGER)
USING (
eventid IN (SELECT eventid FROM tickit_sales_redshift WHERE qtysold <3)
);
ATTACH RLS POLICY policy_events ON tickit_event_redshift TO ROLE analyst;
ATTACH RLS POLICY policy_events ON target_schema.target_event_table TO ROLE consumer;