- Catégories :
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¶
Pour les objets de politique réseau uniquement :
POLICY_REFERENCES( POLICY_NAME => '<string>' , POLICY_KIND => 'NETWORK_POLICY' )
Pour les autres objets de politique :
POLICY_REFERENCES( POLICY_NAME => '<string>' )
Pour tous les objets de politique :
POLICY_REFERENCES( REF_ENTITY_NAME => '<string>' , REF_ENTITY_DOMAIN => '<string>' )
Arguments¶
POLICY_NAME => 'string'
Spécifie le nom de la politique.
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>"'
).
Actuellement, Snowflake prend en charge les politiques suivantes lorsque le nom de la politique est spécifié comme argument :
POLICY_KIND => 'NETWORK_POLICY'
Cet argument n’est utilisé que lorsque la valeur
POLICY_NAME
est une politique réseau. N’utilisez pas cet argument lorsque vous spécifiez le nom d’autres types de politiques.REF_ENTITY_NAME => 'string'
Le nom de l’objet, comme le nom de la table, le nom de la vue, le nom de la table externe ou le nom d’utilisateur, sur lequel la politique est définie.
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_table>"'
).
REF_ENTITY_DOMAIN => 'string'
Le type d’objet sur lequel la politique est définie.
Si l’objet est une table externe, utilisez
'TABLE'
comme valeur d’argument.Si l’objet est une vue matérialisée, utiliser
'VIEW'
comme valeur d’argument.Les domaines pris en charge sont les suivants :
'ACCOUNT'
'INTEGRATION'
'TABLE'
'TAG'
'USER'
'VIEW'
Renvoie¶
La fonction renvoie les colonnes suivantes :
Colonne |
Type de données |
Description |
---|---|---|
POLICY_DB |
VARCHAR |
La base de données dans laquelle la politique est définie. |
POLICY_SCHEMA |
VARCHAR |
Le schéma dans lequel la politique est définie. |
POLICY_NAME |
VARCHAR |
Nom de la politique. |
POLICY_KIND |
VARCHAR(17) |
Le type de politique dans Snowflake. |
REF_DATABASE_NAME |
VARCHAR |
Le nom de la base de données contenant un objet référencé par l’objet interrogé. |
REF_SCHEMA_NAME |
VARCHAR |
Le nom du schéma contenant un objet référencé par l’objet interrogé. |
REF_ENTITY_NAME |
VARCHAR |
Le nom de l’objet (c.-à-d. nom_table, nom_vue, nom_table_externe) sur lequel la politique est définie. |
REF_ENTITY_DOMAIN |
VARCHAR |
Le type d’objet (c.-à-d. table, vue) sur lequel la politique est définie. |
REF_COLUMN_NAME |
VARCHAR |
Le nom de la colonne sur laquelle la politique est définie. |
REF_ARG_COLUMN_NAMES |
VARCHAR |
Retourne NULL pour les lignes du résultat de la requête dans lesquelles une politique de masquage est définie. |
TAG_DATABASE |
VARCHAR |
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 |
VARCHAR |
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 |
VARCHAR |
Le nom de la balise à laquelle est attribuée une politique ou NULL si aucune politique n’est attribuée à la balise. |
POLICY_STATUS |
VARCHAR |
Spécifie le statut de la politique, qui peut être l’une des quatre valeurs possibles : |
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.
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
etref_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.
Exemples¶
Renvoie une ligne pour chaque objet, comme 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'));