Est syntaxiquement équivalent à SHOWGRANTSTOUSERcurrent_user. Répertorie tous les rôles accordés à l’utilisateur actuel.
LIMITrows
(Facultatif) Limite le nombre maximum de lignes renvoyées. Le nombre réel de lignes renvoyées peut être inférieur à la limite spécifiée. Par exemple, le nombre d’objets existants est inférieur à la limite spécifiée.
Par défaut : aucune valeur (aucune limite n’est appliquée à la sortie).
SHOWGRANTSON...
ACCOUNT
Liste tous les privilèges de niveau compte (c’est-à-dire globaux) qui ont été accordés aux rôles.
object_typeobject_name
Liste tous les privilèges qui ont été accordés sur l’objet.
Pour les rôles de base de données, vous pouvez utiliser le nom complet, database_name.database_role_name, ou le nom relatif, database_role_name. Si vous utilisez le nom relatif du rôle de base de données, Snowflake utilise la base de données en session pour résoudre le nom relatif du rôle de base de données.
SHOWGRANTSTO...
APPLICATIONapp_name
Répertorie tous les privilèges et rôles accordés à l’application.
APPLICATIONROLE[app_name.]app_role_name
Répertorie tous les privilèges et rôles accordés au rôle d’application.
Le nom de l’application, app_name, est facultatif. S’il n’est pas spécifié, Snowflake utilise l’application en cours. Si l’application n’est pas une base de données, cette commande ne renvoie pas de résultats.
SERVICEROLEservice_name!service_role_name
Répertorie les points de terminaison de service pour lesquels le rôle de service bénéficie du privilège USAGE.
Si la base de données et le schéma qui contiennent le class_name ne sont pas utilisés ou ne sont pas spécifiés dans votre chemin de recherche, spécifiez le nom complet de la classe. Par exemple, SNOWFLAKE.CORE.BUDGET.
Liste tous les privilèges et rôles accordés au rôle. Si le rôle dispose d’un droit sur un objet temporaire, ce droit n’existe que dans la session au cours de laquelle l’objet temporaire a été créé.
SHOW GRANTS TO ROLE PUBLIC expose les rôles de base de données irrévocables suivants accordés au rôle public :
Répertorie tous les privilèges et rôles accordés à un partage dans le paquet d’application.
USERuser_name
Répertorie tous les rôles accordés à l’utilisateur. Notez que le rôle PUBLIC, qui est automatiquement disponible pour chaque utilisateur, ne figure pas dans la liste.
SHOWGRANTSOF...
APPLICATIONROLE[app_name.]app_role
Répertorie tous les utilisateurs et tous les rôles auxquels le rôle a été accordé.
Le nom de l’application, app_name, est facultatif. S’il n’est pas spécifié, Snowflake utilise l’application en cours. Si l’application n’est pas une base de données, cette commande ne renvoie pas de résultats.
SERVICEROLEservice_name!service_role_name
Répertorie tous les utilisateurs et tous les rôles auxquels le rôle de service a été accordé.
ROLErole_name
Liste tous les utilisateurs et tous les rôles auxquels le rôle a été accordé.
SHAREshare_name
Répertorie tous les comptes qui consomment le partage. Les comptes qui n’ont pas encore consommé le partage sont exclus. Pour voir tous les comptes qui ont été ajoutés à un partage, interrogez la vue SNOWFLAKE.ACCOUNT_USAGE.SHARES.
SHOWFUTUREGRANTSIN...
SCHEMAdatabase_name.schema_name
Répertorie tous les privilèges sur les nouveaux (c’est-à-dire les futurs) objets d’un type spécifié dans le schéma assigné à un rôle. database_name. spécifie la base de données dans laquelle réside le schéma. Ceci est facultatif lors de l’interrogation d’un schéma dans la base de données actuelle.
DATABASEdatabase_name
Répertorie tous les privilèges sur les nouveaux objets (c’est-à-dire futurs) d’un type spécifié dans la base de données accordés à un rôle.
SHOWFUTUREGRANTSTOROLErole_name
Répertorie tous les privilèges sur les nouveaux objets (c’est-à-dire futurs) d’un type spécifié dans une base de données ou un schéma accordés au rôle.
SHOWFUTUREGRANTSTODATABASEROLEdatabase_role_name
Répertorie tous les privilèges sur les nouveaux objets (c’est-à-dire futurs) d’un type spécifié dans une base de données ou un schéma accordés au rôle de base de données.
Un rôle de base de données partagé ne prend pas en charge les attributions futures. Pour plus de détails, voir les notes sur l’utilisation dans la commande GRANT DATABASE ROLE … TO SHARE.
La colonne granted_by indique le rôle qui a accordé l’autorisation d’un privilège au bénéficiaire. Le rôle d’autorisation est connu sous le nom de concédant.
Lorsque vous autorisez des privilèges sur un objet à un rôle à l’aide de GRANT <privilèges> … TO ROLE, les règles d’autorisation suivantes déterminent quel rôle est répertorié comme le concédant du privilège :
Si un rôle actif est le propriétaire de l’objet (c’est-à-dire qu’il possède le privilège OWNERSHIP sur l’objet), ce rôle est le concédant.
Si un rôle actif détient l’autorisation spécifiée avec l’option d’autorisation activée (c’est-à-dire que le privilège a été accordé au rôle actif avec l’option GRANT <privilèges> … TO ROLE <role_name> WITH GRANT OPTION, où <role_name> est l’un des rôles actifs). Si c’est le cas, le rôle qui détient le privilège avec l’option d’autorisation activée est le rôle d’autorisation. Notez que si plusieurs rôles actifs répondent à ce critère, il n’est pas possible de déterminer lequel de ces rôles devient le rôle de concédant.
Si un rôle actif détient le privilège global MANAGE GRANTS, le rôle concédant est le propriétaire de l’objet, et non le rôle qui détenait le privilège MANAGE GRANTS. En d’autres termes, le privilège MANAGE GRANTS permet à un rôle de se faire passer pour le propriétaire de l’objet afin d’accorder des privilèges sur cet objet.
Si la colonne granted_by est vide, le privilège a été accordé par le rôle SYSTEM Snowflake. Certaines opérations internes sont effectuées avec ce rôle. Les concessions de privilèges autorisées par le rôle SYSTEM ne peuvent pas être modifiées par les clients.
Lorsque vous utilisez la syntaxe SHOW GRANTS… TO SHARE IN APPLICATION PACKAGE :
La colonne grantee_name indique le nom du paquet d’application.
La colonne granted_to spécifie APPLICATIONPACKAGESHARE.
La colonne granted_by_role_type indique le type de rôle de concédant qui a effectué l’attribution : ROLE, DATABASE_ROLE, ou APPLICATION_ROLE. Cette colonne n’apparaît dans la sortie lorsque vous utilisez la syntaxe SHOW GRANTS ON.
Un consommateur de partage de données ne peut voir que les privilèges sur les objets qui sont accordés à l’action, tel que SELECT sur une table. Selon la manière dont les subventions sont mises en place, le résultat d’une commande SHOW GRANTS exécutée par le consommateur peut afficher des valeurs vides pour les objets partagés dans les colonnes suivantes : granted_to, grantee_name, granted_by_role_type et granted_by. Par exemple :
Si un rôle de compte possède l’objet partagé, le consommateur ne peut pas voir le privilège OWNERSHIP sur les objets partagés car le consommateur ne peut pas accéder (résoudre) au rôle qui possède l’objet (les rôles de compte ne sont pas partagés).
Si un rôle de base de données possède l’objet partagé et que le fournisseur partage le rôle de base de données, le consommateur peut voir le privilège OWNERSHIP sur l’objet partagé car ils peuvent résoudre le rôle de base de données partagée.
La colonne grant_options renvoie FALSE lorsque vous exécutez une commande SHOW GRANTS ON <object_type> <object_name> pour un objet du schéma d’accès géré.
La colonne privilege inclut les privilèges OWNERSHIP MANAGE GRANTS pour le rôle qui possède le schéma d’accès géré lorsque vous exécutez une commande SHOW GRANTS ON SCHEMA <managed_access_schema>.
Avec les rôles de base de données et la syntaxe SHOW FUTURE GRANTS TO DATABASE ROLE, la commande renvoie les résultats pour les rôles de base de données qui ne sont pas accordés à un partage.
Dans le compte consommateur de partage de données, cette commande ne renvoie aucune ligne lorsqu’un rôle de base de données partagée se voit accorder de futurs privilèges. Cependant, en fonction de votre compte et du moment de la prise en charge des futurs privilèges sur les rôles de base de données dans cette commande, vous pourriez voir ce message d’erreur :
Invalid state of the shared database role. Please revoke the future grants to the shared database role.
En tant que consommateur, demandez au fournisseur de révoquer les futures autorisations du rôle de base de données partagée.
La commande ne nécessite pas l’exécution d’un entrepôt en cours d’exécution.
La commande ne renvoie que les objets pour lesquels le rôle actuel de l’utilisateur s’est vu accorder au moins un privilège d’accès.
Le privilège d’accès MANAGE GRANTS permet implicitement à son titulaire de voir tous les objets du compte. Par défaut, seuls l’administrateur du compte (utilisateurs avec le rôle ACCOUNTADMIN) et l’administrateur de sécurité (utilisateurs avec le rôle SECURITYADMIN) ont le privilège MANAGE GRANTS.
Pour post-traiter la sortie de cette commande, vous pouvez utiliser l’opérateur de canal (->>) ou la fonction RESULT_SCAN. Les deux constructions traitent la sortie comme un jeu de résultats que vous pouvez interroger.
Par exemple, vous pouvez utiliser l’opérateur de canal ou la fonction RESULT_SCAN pour sélectionner des colonnes spécifiques à partir de la sortie de la commande SHOW ou pour filtrer les lignes.
Lorsque vous faites référence aux colonnes de sortie, utilisez des identificateurs entre guillemets doubles pour les noms des colonnes. Par exemple, pour sélectionner la colonne de sortie type, spécifiez SELECT"type".
Vous devez utiliser des identificateurs entre guillemets doubles, car les noms des colonnes de sortie pour les commandes SHOW sont en minuscules. Les guillemets doubles garantissent que les noms des colonnes dans la liste SELECT ou dans la clause WHERE correspondent aux noms des colonnes dans la sortie de la commande SHOW qui a été analysée.