本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
遮罩政策 DDL 程序中的逸出識別符
使用引號識別符建立資料遮罩政策時,需要適當的逸出,以確保正確的物件參考和政策應用程式。若要在pg_columnmask遮罩政策管理程序中使用引號識別符:
政策名稱 – 必須以雙引號括住。
資料表名稱 – 結構描述名稱和資料表名稱都必須視需要個別以雙引號括住。
遮罩表達式 – 遮罩表達式中的資料欄和函數名稱必須以雙引號括住,且必須使用反斜線逸出引號本身。
角色 – 會自動引用角色名稱的陣列。角色名稱應完全符合 中顯示的名稱,
pg_roles包括區分大小寫。
範例 逸出和引號語法
此範例顯示為使用混合大小寫名稱或在 Aurora PostgreSQL 中需要引用識別符的資料表、欄、函數和角色建立遮罩政策時,適當的逸出和引用語法。
-- Create a table and columns with mixed case name CREATE TABLE public."Employees" ( "Name" TEXT, "Email" TEXT, ssn VARCHAR(20) ); -- Create a role with mixed case name CREATE ROLE "Masked_user"; -- Create a function with mixed case name CREATE OR REPLACE FUNCTION public."MaskEmail"(text) RETURNS character varying LANGUAGE plpgsql IMMUTABLE PARALLEL SAFE AS $$ BEGIN RETURN 'XXXXXXXX'::text; END $$; -- Now use these objects with mixed case names in -- masking policy management procedures CALL pgcolumnmask.create_masking_policy( '"Policy1"', -- policy name should be surrounded with double quotes for quoting 'public."Employees"', -- table and schema name should be individually -- surrounded with double quotes for quoting JSON_OBJECT('{ "\"Email\"", "\"MaskEmail\"(\"Email\")" }')::JSONB, -- masking expression should have double quotes around function names -- and columns names etc when needed. Also the double quotes itself -- should be escaped using \ (backslash) since this is a JSON string ARRAY['Masked_user'], -- Rolename do not need quoting -- (this behaviour may change in future release) 100 ); SELECT * FROM pgcolumnmask.pg_columnmask_policies WHERE tablename = 'Employees'; -[ RECORD 1 ]-----+------------------------------------- schemaname | public tablename | Employees policyname | Policy1 roles | {Masked_user} masked_columns | {Email} masking_functions | {"(\"MaskEmail\"(\"Email\"))::text"} weight | 100
管理檢視
您可以使用可公開存取的pgcolumnmask.pg_columnmask_policies管理檢視來檢閱所有pg_columnmask政策。下列資訊可透過此檢視取得。檢視只會傳回目前使用者擁有的遮罩政策。
| 欄名稱 | 資料類型 | 描述 |
|---|---|---|
|
結構描述名稱 |
NAME |
政策所連接關係的結構描述 |
|
資料表名稱 |
NAME |
政策所連接關係的名稱 |
|
policyname |
NAME |
遮罩政策的名稱,所有遮罩政策都有唯一的名稱 |
|
roles |
TEXT【】 |
政策適用的角色。 |
|
masked_columns |
TEXT【】 |
遮罩的資料欄 |
|
masking_functions |
TEXT【】 |
遮罩函數 |
| Weight | INT |
附加政策的權重 |