管理資料遮罩政策的程序 - Amazon Aurora

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

管理資料遮罩政策的程序

您可以使用 pg_columnmask 擴充功能提供的程序來管理遮罩政策。若要建立、修改或捨棄遮罩政策,您必須具有下列其中一個權限:

  • 您要建立pg_columnmask政策之資料表的擁有者。

  • 的成員rds_superuser

  • pgcolumnmask.policy_admin_rolname 參數設定pg_columnmask的政策管理員角色成員。

下列命令會建立在後續區段中使用的資料表:

CREATE TABLE public.customers ( id SERIAL PRIMARY KEY, name TEXT, phone TEXT, address TEXT, email TEXT );

CREATE_MASKING_POLICY

下列程序會為使用者資料表建立新的遮罩政策:

語法

create_masking_policy( policy_name, table_name, masking_expressions, roles, weight)

Arguments (引數)

參數 Datatype 描述
policy_name NAME

遮罩政策的名稱。每個資料表必須是唯一的。

table_name REGCLASS

要套用遮罩政策之資料表的合格/不合格名稱或 oid。

masking_expressions JSONB

包含資料欄名稱和遮罩函數對的 JSON 物件。每個索引鍵都是資料欄名稱,其值是要套用至該資料欄的遮罩表達式。

roles NAME【】

此遮罩政策套用的角色。預設為 PUBLIC。

weight INT

遮罩政策的權重。當多個政策適用於指定使用者的查詢時,具有最高權重 (較高的整數) 的政策將套用至每個遮罩的資料欄。

預設值為 0。資料表上沒有任何兩個遮罩政策可以具有相同的 wieght。

傳回類型

範例 建立遮罩政策以遮罩test_user角色的電子郵件欄:
CALL pgcolumnmask.create_masking_policy( 'customer_mask', 'public.customers', JSON_OBJECT('{ "email", "pgcolumnmask.mask_email(email)" }')::JSONB, ARRAY['test_user'], 100 );

ALTER_MASKING_POLICY

此程序會修改現有的遮罩政策。 ALTER_MASKING_POLICY可以修改政策遮罩表達式、政策套用的一組角色,以及遮罩政策的權重。省略其中一個參數時,政策的對應部分保持不變。

語法

alter_masking_policy( policy_name, table_name, masking_expressions, roles, weight)

Arguments (引數)

參數 Datatype 描述
policy_name NAME

遮罩政策的現有名稱。

table_name REGCLASS

包含遮罩政策之資料表的合格/不合格名稱 oid。

masking_expressions JSONB

包含資料欄名稱和遮罩函數對或 NULL 的新 JSON 物件。

roles NAME【】

套用此遮罩政策的新角色清單,否則為 NULL。

weight INT

遮罩政策或 NULL 的新權重。

傳回類型

範例 將分析師角色新增至現有遮罩政策,而不變更其他政策屬性。
CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'public.customers', NULL, ARRAY['test_user', 'analyst'], NULL ); -- Alter the weight of the policy without altering other details CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'customers', NULL, NULL, 4 );

DROP_MASKING_POLICY

此程序會移除現有的遮罩政策。

語法

drop_masking_policy( policy_name, table_name)

Arguments (引數)

參數 Datatype 描述
policy_name NAME

遮罩政策的現有名稱。

table_name REGCLASS

包含遮罩政策之資料表的合格/不合格名稱 oid。

傳回類型

範例 捨棄遮罩政策 customer_mask 的
-- Drop a masking policy CALL pgcolumnmask.drop_masking_policy( 'customer_mask', 'public.customers', );