Catégories :

Information Schema , Fonctions de table

POLICY_REFERENCES

Renvoie une ligne pour chaque objet auquel est attribuée la politique spécifiée ou renvoie une ligne pour chaque politique attribuée à l’objet spécifié.

Voir aussi : Vue POLICY_REFERENCES (Vue Account Usage)

Syntaxe

POLICY_REFERENCES(
      POLICY_NAME => '<string>' )

POLICY_REFERENCES(
       REF_ENTITY_NAME => '<string>' ,
       REF_ENTITY_DOMAIN => '<string>'
       )

Arguments

POLICY_NAME => 'chaîne'

Spécifie le nom de la politique. Actuellement, Snowflake accepte uniquement les politiques de masquage et les politiques d’accès aux lignes.

  • Le nom entier de la politique doit être entre guillemets simples.

  • Si le nom de la politique est sensible à la casse ou inclut des caractères spéciaux ou des espaces, des guillemets doubles sont nécessaires pour traiter la casse/les caractères. Les guillemets doubles doivent être placés entre guillemets simples, (c’est-à-dire '"<nom_politique>"').

REF_ENTITY_NAME => 'chaîne'

Le nom de l’objet (c.-à-d. nom_table, nom_vue, nom_table_externe) sur lequel la politique est définie.

Si l’objet est une table externe, utilisez 'table' comme argument.

  • Le nom entier de l’objet doit être entre guillemets simples.

  • Si le nom de l’objet est sensible à la casse ou inclut des caractères spéciaux ou des espaces, des guillemets doubles sont nécessaires pour traiter la casse / les caractères. Les guillemets doubles doivent être placés entre guillemets simples, (c’est-à-dire '"<nom_politique>"').

REF_ENTITY_DOMAIN => 'chaîne'

Le type d’objet (c.-à-d. table, vue) sur lequel la politique est définie.

Notes sur l’utilisation

  • Les résultats sont renvoyés en fonction des privilèges accordés au rôle qui exécute la requête :

    • Si le rôle possède le privilège global APPLY MASKING POLICY, Snowflake renvoie toutes les associations de politique de masquage dans le résultat de la requête.

    • Si le rôle possède le privilège global APPLY ROW ACCESS POLICY, Snowflake renvoie toutes les associations de politique d’accès aux lignes dans le résultat de la requête.

    • Si le rôle possède le privilège APPLY sur une politique donnée (par exemple, APPLY sur MASKING POLICY), Snowflake renvoie les associations de cette politique uniquement pour les objets appartenant au rôle qui exécute la requête.

    • Si le rôle possède l’un des privilèges globaux APPLY ou le privilège OWNERSHIP sur la politique, mais pas OWNERSHIP sur la table ou la vue (par exemple, SELECT sur la table), Snowflake n’affiche pas les associations de politiques dans le résultat de la requête.

    • Si le rôle n’a pas d’autorisations de politique mais possède le privilège OWNERSHIP sur la table, Snowflake renvoie un message d’erreur et n’affiche pas les associations de politique.

  • Lors de l’appel d’une fonction de la table Information Schema, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou la fonction doit être un nom d’objet complet. Pour plus de détails, voir Schéma d’information de Snowflake.

  • Choisissez une variante de syntaxe pour exécuter une requête. Le mélange d’arguments entraîne des erreurs et l’échec de la requête.

    Les arguments ref_entity_name et ref_entity_domain doivent être inclus ensemble, sinon la requête échoue.

  • Snowflake renvoie des erreurs si le nom de l’objet spécifié n’existe pas ou si l’opérateur de la requête n’est pas autorisé à visualiser une quelconque politique sur l’objet. Snowflake peut renvoyer un jeu de résultats d’associations de politiques si l’opérateur est autorisé à visualiser un sous-ensemble des associations de politiques. Les types d’objets non pris en charge figurant dans la liste ref_entity_domain (par exemple, 'stream') renvoient également des erreurs.

  • Snowflake ne renvoie pas de jeu de résultats si l’opérateur de la requête n’a pas les privilèges APPLY ou OWNERSHIP sur la politique.

Sortie

La fonction renvoie les colonnes suivantes :

Colonne

Type de données

Description

POLICY_DB

TEXT

La base de données dans laquelle la politique est définie.

POLICY_SCHEMA

TEXT

Le schéma dans lequel la politique est définie.

POLICY_NAME

TEXT

Nom de la politique.

POLICY_KIND

TEXT

Le type de politique dans Snowflake.

REF_DATABASE_NAME

TEXT

Le nom de la base de données contenant un objet référencé par l’objet interrogé.

REF_SCHEMA_NAME

TEXT

Le nom du schéma contenant un objet référencé par l’objet interrogé.

REF_ENTITY_NAME

TEXT

Le nom de l’objet (c.-à-d. nom_table, nom_vue, nom_table_externe) sur lequel la politique est définie.

REF_ENTITY_DOMAIN

TEXT

Le type d’objet (c.-à-d. table, vue) sur lequel la politique est définie.

REF_COLUMN_NAME

TEXT

Le nom de la colonne sur laquelle la politique est définie.

REF_ARG_COLUMN_NAMES

ARRAY

Retourne NULL pour les lignes du résultat de la requête dans lesquelles une politique de masquage est définie.

TAG_DATABASE

TEXT

Nom de la base de données contenant la balise à laquelle une politique est attribuée ou NULL si aucune politique n’est attribuée à la balise.

TAG_SCHEMA

TEXT

Nom du schéma contenant la balise à laquelle une politique est attribuée ou NULL si aucune politique n’est attribuée à la balise.

TAG_NAME

TEXT

Le nom de la balise à laquelle est attribuée une politique ou NULL si aucune politique n’est attribuée à la balise.

POLICY_STATUS

TEXT

Spécifie le statut de la politique, qui peut être l’une des quatre valeurs possibles : ACTIVE, MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN, COLUMN_IS_MISSING_FOR_SECONDARY_ARG, ou COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG.

Notez ce qui suit pour la colonne POLICY_STATUS :

ACTIVE

Spécifie que la colonne (c’est-à-dire REF_COLUMN_NAME) n’est associée qu’à une seule politique par une balise.

MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN

Spécifie que plusieurs politiques de masquage sont affectées à la même colonne.

COLUMN_IS_MISSING_FOR_SECONDARY_ARG

Spécifie que la politique (c’est-à-dire POLICY_NAME) est une politique de masquage conditionnel et que la table (c’est-à-dire REF_ENTITY_NAME) ne possède pas de colonne portant le même nom.

COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG

Spécifie que la politique est une politique de masquage conditionnel et que la table a une colonne avec le même nom, mais un type de données différent de celui de la signature de la politique de masquage.

Exemples

Renvoie une ligne pour chaque objet (c’est-à-dire une table ou une vue) pour lequel la politique de masquage nommée ssn_mask est définie sur la colonne :

use database my_db;
use schema information_schema;
select *
  from table(information_schema.policy_references(policy_name => 'my_db.my_schema.ssn_mask'));

Renvoie une ligne pour chaque politique affectée à la table nommée my_table :

use database my_db;
use schema information_schema;
select *
  from table(information_schema.policy_references(ref_entity_name => 'my_db.my_schema.my_table', ref_entity_domain => 'table'));