Umgehen von Identifikatoren in der DDL-Prozedur für Maskierungsrichtlinien - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Umgehen von Identifikatoren in der DDL-Prozedur für Maskierungsrichtlinien

Bei der Erstellung von Datenmaskierungsrichtlinien mit Identifikatoren in Anführungszeichen ist ein korrektes Escaping erforderlich, um sicherzustellen, dass die Objektverweise und die Richtlinien korrekt angewendet werden. Um Bezeichner in Anführungszeichen innerhalb der Verfahren zur Verwaltung von pg_columnmask Maskierungsrichtlinien zu verwenden, gehen Sie wie folgt vor:

  • Richtlinienname — Muss in doppelte Anführungszeichen gesetzt werden.

  • Tabellenname — Sowohl der Schemaname als auch der Tabellenname müssen bei Bedarf einzeln in doppelte Anführungszeichen gesetzt werden.

  • Maskierungsausdrücke — Spalten- und Funktionsnamen in Maskierungsausdrücken müssen in doppelte Anführungszeichen eingeschlossen werden, und die Anführungszeichen selbst müssen mit einem umgekehrten Schrägstrich maskiert werden.

  • Rollen — Das Array der Rollennamen wird automatisch in Anführungszeichen gesetzt. Der Rollenname sollte genau dem Namen entsprechen, wie er unter angegeben ist, pg_roles einschließlich Groß- und Kleinschreibung.

Beispiel der Syntax mit Escape-Zeichen und Anführungszeichen

Dieses Beispiel zeigt die richtige Syntax für Escapes und Anführungszeichen bei der Erstellung von Maskierungsrichtlinien für Tabellen, Spalten, Funktionen und Rollen, die Namen in Groß- und Kleinschreibung verwenden oder Bezeichner in Anführungszeichen in Aurora PostgreSQL erfordern.

-- 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

Administrative Ansichten

Sie können die gesamte pg_columnmask Richtlinie in der öffentlich zugänglichen pgcolumnmask.pg_columnmask_policies Verwaltungsansicht überprüfen. Die folgenden Informationen sind in dieser Ansicht verfügbar. Die Ansicht gibt nur die Maskierungsrichtlinien zurück, die dem aktuellen Benutzer gehören.

Name der Spalte Datentyp Beschreibung

schemaname

NAME

Schema der Beziehung, an die die Richtlinie angehängt ist

tablename

NAME

Name der Beziehung, an die die Richtlinie angehängt ist

Name der Richtlinie

NAME

Name der Maskierungsrichtlinie. Alle Maskierungsrichtlinien haben eindeutige Namen

Rollen

TEXT []

Rolle, für die die Richtlinie gilt.

masked_columns

TEXT []

Maskierte Spalten

maskierende Funktionen

TEXT []

Maskierungsfunktionen

Gewichtung INT

Gewicht der beigefügten Richtlinie