Catégories :

Information Schema , Fonctions de table

POLICY_REFERENCES

Renvoie une liste de tous les objets (c.-à-d. tables, vues) dont la politique de masquage spécifiée est définie sur une colonne ou dont la politique d’accès aux lignes est définie sur une table ou une vue.

Renvoie une liste d’associations de politiques ayant le nom d’objet et le type d’objet spécifiés.

Voir aussi : Vue POLICY_REFERENCES (Vue Account Usage)

Syntaxe

POLICY_REFERENCES(
      POLICY_NAME => '<string>' )

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

Arguments

POLICY_NAME => 'chaîne'

Spécifie le nom de la politique de masquage ou d’accès aux lignes.

  • Si le nom complet de la politique de masquage (par exemple <nom_base_de_données>.<nom_schéma>.<nom_politique>) n’est pas utilisé, Snowflake utilise le schéma et la base de données de session de la politique. Pour plus d’informations, voir Résolution de nom d’objet.

  • 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_DOMAIN => 'chaîne'

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

  • Si le nom complet de la politique de masquage (par exemple <nom_base_de_données>.<nom_schéma>.<nom_politique>) n’est pas utilisé, Snowflake utilise le schéma et la base de données de session de la politique. Pour plus d’informations, voir Résolution de nom d’objet.

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

  • Si le nom complet de la politique de masquage (par exemple <nom_base_de_données>.<nom_schéma>.<nom_politique>) n’est pas utilisé, Snowflake utilise le schéma et la base de données de session de la politique. Pour plus d’informations, voir Résolution de nom d’objet.

  • 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>"').

Notes sur l’utilisation

  • Les résultats sont renvoyés pour le rôle ACCOUNTADMIN uniquement.

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

  • 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

CREATED_ON

TIMESTAMP_LTZ

La date et l’heure de création de la politique.

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

TEXT

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

Exemples

Récupérer la liste des objets dont la politique my_db.my_schema.ssn_mask est définie sur une colonne :

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

Récupérer une liste d’associations de politiques en utilisant les arguments ref_entity_name et ref_entity_domain pour la table 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'));