Identifiants échappés dans la procédure DDL de politique de masquage - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Identifiants échappés dans la procédure DDL de politique de masquage

Lors de la création de politiques de masquage de données avec des identifiants entre guillemets, un échappement approprié est nécessaire pour garantir l'exactitude des références aux objets et l'application des politiques. Pour utiliser des identifiants entre guillemets dans les procédures de gestion des politiques de pg_columnmask masquage :

  • Nom de la politique — Doit être placé entre guillemets.

  • Nom de la table : le nom du schéma et le nom de la table doivent être placés individuellement entre guillemets lorsque cela est nécessaire.

  • Expressions de masquage : les noms des colonnes et des fonctions dans les expressions de masquage doivent être placés entre guillemets et les guillemets eux-mêmes doivent être évités à l'aide d'une barre oblique inverse.

  • Rôles — Le tableau des noms de rôles est automatiquement cité entre guillemets. Le nom du rôle doit correspondre exactement au nom indiqué en tenant compte de la distinction pg_roles majuscules/minuscules.

Exemple de syntaxe d'échappement et de citation

Cet exemple montre la syntaxe d'échappement et de citation appropriée lors de la création de politiques de masquage pour les tables, les colonnes, les fonctions et les rôles qui utilisent des noms mixtes ou nécessitent des identifiants entre guillemets dans 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

Vues administratives

Vous pouvez consulter l'ensemble de la pg_columnmask politique à l'aide de la vue pgcolumnmask.pg_columnmask_policies administrative accessible au public. Les informations suivantes sont disponibles via cette vue. La vue renvoie uniquement les politiques de masquage détenues par l'utilisateur actuel.

Nom de colonne Type de données Description

schemaname

NAME

Schéma de la relation à laquelle la politique est attachée

tablename

NAME

Nom de la relation à laquelle la politique est attachée

nom de la politique

NAME

Nom de la politique de masquage, toutes les politiques de masquage ont des noms uniques

roles

TEXTE []

Rôle auquel la politique s'applique.

colonnes_masquées

TEXTE []

Colonnes masquées

fonctions_masquage

TEXTE []

Fonctions de masquage

weight INT

Poids de la politique ci-jointe