마스킹 정책 DDL 절차에서 식별자 이스케이프 - Amazon Aurora

마스킹 정책 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 정책을 검토할 수 있습니다. 이 보기를 사용하여 다음 정보를 사용할 수 있습니다. 뷰는 현재 사용자가 소유한 마스킹 정책만 반환합니다.

열 명칭 데이터 유형 설명

schemaname

NAME

정책이 연결된 관계의 스키마

tablename

NAME

정책이 연결된 관계의 이름

policyname

NAME

마스킹 정책의 이름, 모든 마스킹 정책에는 고유한 이름이 있음

역할

TEXT[]

정책이 적용되는 역할입니다.

masked_columns

TEXT[]

마스킹된 열

masking_functions

TEXT[]

Masking functions

weight INT

연결된 정책의 가중치