Catégories :

Table, vue et séquence DDL

ALTER MASKING POLICY

Remplace les règles de politique de masquage existantes par de nouvelles règles ou un nouveau commentaire et permet de renommer une politique de masquage.

Toutes les modifications apportées aux règles de politiques entrent en vigueur lors de l’exécution de la prochaine requête SQL qui utilise la politique de masquage.

Syntaxe

ALTER MASKING POLICY [ IF EXISTS ] <name> SET BODY -> <expression_ON_VAL> [ COMMENT = '<string_literal>' ]

ALTER MASKING POLICY [ IF EXISTS ] <name> RENAME TO <new_name>

Paramètres

nom

Identificateur de la politique de masquage ; doit être unique pour votre compte.

La valeur de l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

expression_ON_VAL

Expression SQL qui transforme les données.

L’expression peut inclure Fonctions d’expressions conditionnelles pour représenter la logique conditionnelle, les fonctions intégrées ou les UDFs pour transformer les données.

Si une fonction UDF ou externe est utilisée dans le corps de la politique de masquage, le propriétaire de la politique doit avoir OWNERSHIP sur l’UDF ou la fonction externe. Les utilisateurs interrogeant une colonne à laquelle une politique de masquage est appliquée n’ont pas besoin d’avoir USAGE sur l’UDF ou sur la fonction externe.

RENAME TO nouveau_nom

Indique le nouvel identificateur du rôle ; il doit être unique pour votre compte.

Pour plus de détails, voir Exigences relatives à l’identificateur.

Notes sur l’utilisation

  • Vous ne pouvez pas modifier la signature de la politique (par exemple, le nom de l’argument ou le type de données d’entrée/sortie). Si vous devez modifier la signature, exécutez une instruction DROP MASKING POLICY sur la politique et créez-en une nouvelle.

  • Avant d’exécuter une instruction ALTER, vous pouvez exécuter une instruction DESCRIBE MASKING POLICY pour déterminer le nom d’argument à utiliser pour mettre à jour la politique.

  • Pour les politiques de masquage qui incluent une sous-requête dans le corps de la politique de masquage, utilisez EXISTS dans la clause WHEN. Pour un exemple représentatif, consultez l’exemple de table de droits personnalisée dans la section Exemples de CREATE MASKING POLICY.

Exemples

L’exemple suivant met à jour la politique de masquage permettant d’utiliser un hachage SHA-512. Les utilisateurs sans le rôle ANALYST voient la valeur comme un hachage SHA-512, tandis que les utilisateurs avec le rôle ANALYST voient la valeur en texte brut.

DESCRIBE MASKING POLICY email_mask;

-- evaluate output

+-----+------------+---------------+-------------------+-----------------------------------------------------------------------+
| Row | name       | signature     | return_type       | body                                                                  |
+-----+------------+---------------+-------------------+-----------------------------------------------------------------------+
| 1   | EMAIL_MASK | (VAL VARCHAR) | VARCHAR(16777216) | case when current_role() in ('ANALYST') then val else '*********' end |
+-----+------------+---------------+-------------------+-----------------------------------------------------------------------+

ALTER MASKING POLICY email_mask SET BODY ->
  CASE
    WHEN current_role() IN ('ANALYST') THEN VAL
    ELSE sha2(val, 512)
  END;