Identificatori di escape nella procedura DDL della politica di mascheramento - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Identificatori di escape nella procedura DDL della politica di mascheramento

Quando si creano policy di mascheramento dei dati con identificatori tra virgolette, è necessario un corretto escape per garantire i riferimenti agli oggetti e l'applicazione delle policy corretti. Per utilizzare gli identificatori tra virgolette all'interno delle procedure di gestione delle policy di mascheramento: pg_columnmask

  • Nome della politica: deve essere racchiuso tra virgolette doppie.

  • Nome tabella: sia il nome dello schema che il nome della tabella devono essere racchiusi tra virgolette doppie singolarmente, se necessario.

  • Espressioni di mascheramento: i nomi delle colonne e delle funzioni nelle espressioni di mascheramento devono essere racchiusi tra virgolette doppie e le virgolette stesse devono essere eliminate utilizzando una barra rovesciata.

  • Ruoli: la matrice dei nomi dei ruoli viene citata automaticamente. Il nome del ruolo deve corrispondere esattamente al nome indicato, pg_roles inclusa la distinzione tra maiuscole e minuscole.

Esempio della sintassi in escape e tra virgolette

Questo esempio mostra la sintassi corretta di escape e virgolette quando si creano policy di mascheramento per tabelle, colonne, funzioni e ruoli che utilizzano nomi composti da maiuscole e minuscole o richiedono identificatori tra virgolette in 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

Viste amministrative

È possibile rivedere tutta la pg_columnmask politica utilizzando la visualizzazione pgcolumnmask.pg_columnmask_policies amministrativa accessibile al pubblico. Le seguenti informazioni sono disponibili utilizzando questa visualizzazione. La vista restituisce solo le politiche di mascheramento di proprietà dell'utente corrente.

Nome della colonna Tipo di dati Description

schemaname

NAME

Schema della relazione a cui è allegata la politica

tablename

NAME

Nome della relazione a cui è allegata la politica

nome della politica

NAME

Nome della politica di mascheramento, tutte le politiche di mascheramento hanno nomi univoci

roles

TESTO []

Ruolo a cui si applica la politica.

masked_columns

TESTO []

Colonne mascherate

funzioni_mascheramento

TESTO []

Funzioni di mascheramento

peso INT

Peso della politica allegata