Catégories :

Table, vue et séquence DDL

SHOW ROW ACCESS POLICIES

Liste les politiques d’accès aux lignes pour lesquelles vous avez des privilèges d’accès. Répertorie les informations, notamment la date de création, les noms de base de données et de schéma, le propriétaire et tout commentaire disponible.

Voir aussi :

DDL De politique d’accès aux lignes

Dans ce chapitre :

Syntaxe

SHOW ROW ACCESS POLICIES [ LIKE '<pattern>' ]
                         [ IN
                              {
                                ACCOUNT                  |

                                DATABASE                 |
                                DATABASE <database_name> |

                                SCHEMA                   |
                                SCHEMA <schema_name>     |
                                <schema_name>
                              }
                         ]

Paramètres

LIKE 'pattern'

Filtre la sortie de commande par nom d’objet. Le filtre utilise une concordance de motif insensible à la casse avec prise en charge des caractères génériques SQL (% et _).

Par exemple, les motifs suivants donnent les mêmes résultats :

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
[ IN ... ]

Spécifie de manière facultative la portée de la commande. Spécifie l’un des éléments suivants :

ACCOUNT

Renvoie les enregistrements pour l’ensemble du compte.

DATABASE, . DATABASE db_name

Renvoie les enregistrements pour la base de données en cours d’utilisation ou une base de données spécifiée (db_name).

Si vous spécifiez DATABASE sans db_name et qu’aucune base de données n’est utilisée, le mot-clé n’a aucun effet sur la sortie.

SCHEMA, . SCHEMA schema_name, . schema_name

Renvoie les enregistrements pour le schéma en cours d’utilisation ou un schéma spécifié (schema_name).

SCHEMA est facultatif si une base de données est utilisée ou si vous spécifiez le schema_name complet (par exemple, db.schema).

Si aucune base de données n’est utilisée, spécifier SCHEMA n’a aucun effet sur la sortie.

Par défaut : dépend si la session dispose actuellement d’une base de données en cours d’utilisation :

  • Base de données : DATABASE est la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans la base de données).

  • Aucune base de données : ACCOUNT est la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans votre compte).

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir au moins l’un des privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

APPLY ROW ACCESS POLICY

Compte

APPLY

Politique d’accès aux lignes

OWNERSHIP

Politique d’accès aux lignes

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Contrôle d’accès dans Snowflake.

Pour plus de détails sur la DDL de politique d’accès aux lignes et les privilèges, voir Gestion des politiques d’accès aux lignes.

Notes sur l’utilisation

  • L’exécution de la commande ne nécessite pas l’exécution d’un entrepôt en cours d’exécution.

  • La valeur pour LIMIT rows ne peut pas dépasser 10000. Si LIMIT rows est omis, la commande entraîne une erreur si le jeu de résultats est supérieur à 10 000 lignes.

    Pour afficher les résultats pour lesquels il existe plus de 10 000 enregistrements, incluez LIMIT rows ou interrogez la vue correspondante dans Schéma d’information de Snowflake.

  • Pour post-traiter la sortie de cette commande, vous pouvez utiliser la fonction RESULT_SCAN qui traite la sortie comme une table qui peut être interrogée.

Exemples

L’exemple suivant est représentatif d’un utilisateur ayant le rôle ACCOUNTADMIN qui exécute la requête.

show row access policies;

---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
          created_on             | name | database_name | schema_name |       kind        |    owner     | comment |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
Fri, 23 Jun 1967 00:00:00 -0700  | P1   | RLS_AUTHZ_DB  | S_D_1       | ROW_ACCESS_POLICY | ACCOUNTADMIN |         |
Fri, 23 Jun 1967 00:00:00 -0700  | P2   | RLS_AUTHZ_DB  | S_D_2       | ROW_ACCESS_POLICY | ACCOUNTADMIN |         |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+

L’exemple suivant est représentatif d’un rôle qui n’a pas USAGE sur le schéma parent dans lequel existent des politiques d’accès aux lignes et qui n’est pas le rôle ACCOUNTADMIN .

show row access policies;

---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
          created_on             | name | database_name | schema_name |       kind        |    owner     | comment |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
Revenir au début