Commandes GRANT et REVOKE : modifications de la sortie d’une attribution qui a échoué

Attention

Ce changement de comportement est présent dans le bundle 2023_05.

Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.

Le comportement de ces commandes est le suivant :

Précédemment

Lorsque vous exécutez l’une de ces commandes et que l’opération ne fonctionne pas pour un ou plusieurs privilèges ou rôles que vous spécifiez dans la commande, Snowflake formate la réponse en tant que « message de statut de réussite » (c’est-à-dire une table) et indique les informations pertinentes. Par exemple :

GRANT ALL ON ACCOUNT TO ROLE r1;
Copy
+--------------------------------------------------------------------------------------------------------------------------+
| status                                                                                                                   |
|--------------------------------------------------------------------------------------------------------------------------|
| Grant partially executed: privileges [MANAGE LISTING AUTO FULFILLMENT, MANAGE ORGANIZATION SUPPORT CASES] not granted.   |
+--------------------------------------------------------------------------------------------------------------------------+

Cette sortie est un exemple représentatif de l’un des nombreux messages possibles lors de l’exécution de l’une de ces commandes.

Actuellement

Lorsque vous exécutez l’une de ces commandes et que l’opération ne fonctionne pas pour un ou plusieurs privilèges ou rôles que vous spécifiez dans la commande, Snowflake formate la réponse sous forme de message d’erreur, avec le code d’erreur, et indique les informations pertinentes. Par exemple :

003011 (42501): Grant partially executed: privileges [MANAGE LISTING AUTO FULFILLMENT, MANAGE ORGANIZATION SUPPORT CASES] not granted.

Le texte du message ne change pas.

Astuce

Si vos workflows dépendent du résultat de l’une ou l’autre de ces commandes, mettez à jour vos scripts afin d’analyser l’information relative au code d’erreur, qui, dans cet exemple, est 003011 (42501).

La liste des codes d’erreur concernés par cette modification est la suivante :

003011: Grant partially executed: [ one or more privileges ] not granted.
003012: Revoke partially executed: [ one or more privileges ] not revoked.
003102: Grant not executed: Insufficient privileges.
003103: Revoke not executed: Insufficient privileges.
003104: Grant not executed: Operation not supported on a SHARE object.
003105: Revoke not executed: Operation not supported on a SHARE object.
Copy

La valeur (42501) dans l’exemple reflète le client SQL que l’utilisateur a choisi pour exécuter la commande, qui est le Connecteur Snowflake pour Python dans cet exemple. Cette valeur peut ne pas apparaître en fonction de la manière dont vous exécutez la commande (par exemple, Snowsight ne renvoie pas cette valeur ou la valeur de code d’erreur 003011).

La valeur [ one or more privileges ] est un espace réservé permettant de renvoyer des informations sur l’instruction à l’origine de l’erreur. Dans l’exemple, ce caractère générique indique que le privilège REFERENCE_USAGE n’a pas été accordé.

Réf : 515