Catégories :

Fonctions système

SYSTEM$GET_TAG_ON_CURRENT_COLUMN

Renvoie la valeur de la chaîne de balise attribuée à la colonne en fonction de la balise spécifiée ou NULL si aucune balise n’est attribuée à la colonne spécifiée.

Lorsque le corps d’une politique de masquage ou d’une politique de projection inclut cette fonction, la valeur d’une balise assignée à une colonne peut déterminer la valeur de renvoi de la politique assignée à cette colonne.

Syntaxe

SYSTEM$GET_TAG_ON_CURRENT_COLUMN( '<tag_name>' )
Copy

Arguments

'tag_name'

Identificateur pour la balise sous forme de chaîne.

Par exemple, si la balise est nommée cost_center, utilisez 'cost_center' comme argument.

Notes sur l’utilisation

  • Actuellement, cette fonction ne peut être utilisée que dans une condition de politique de masquage ou de politique de projection pour évaluer dynamiquement la valeur de la chaîne de balises définie sur une colonne.

    Snowflake renvoie une erreur lors de l’utilisation de la fonction dans une requête SELECT, une politique d’accès aux lignes, une vue ou une fonction définie par l’utilisateur (UDF).

  • Notez que cette fonction s’applique à tous les objets de type table (par exemple, les vues).

  • La balise doit exister lors de l’appel de cette fonction système, sinon Snowflake renvoie le message d’erreur suivant :

    Tag '<tag_name>' does not exist or not authorized.
    
    Copy

Exemples

Politique de masquage

Pour un exemple contextuel de l’utilisation de cette fonction avec une politique de masquage, voir Exemple 2 : Protéger les données d’une colonne en fonction de la valeur de la chaîne de balises de la colonne.

Politique de projection

Lorsque la politique de projection suivante est assignée à une colonne, la valeur de la balise tags.accounting_col sur cette colonne doit être public afin de projeter la colonne.

CREATE PROJECTION POLICY mypolicy
AS () RETURNS PROJECTION_CONSTRAINT ->
CASE
  WHEN SYSTEM$GET_TAG_ON_CURRENT_COLUMN('tags.accounting_col') = 'public'
    THEN PROJECTION_CONSTRAINT(ALLOW => true)
  ELSE PROJECTION_CONSTRAINT(ALLOW => false)
END;
Copy