Capacité des rôles non ACCOUNTADMIN à effectuer des tâches de partage de données

Snowflake offre deux privilèges globaux/de compte pour l’exécution de toutes les tâches liées aux actions :

CREATE SHARE

Dans un compte de fournisseur, permet de créer et de gérer des partages (pour partager des données avec des comptes de consommateur).

IMPORT SHARE

Dans un compte de consommateur, permet de visualiser les partages entrants partagés avec le compte et de créer des bases de données à partir de ces partages.

Par défaut, ces privilèges ne sont accordés qu’au rôle ACCOUNTADMIN, garantissant ainsi que seuls les administrateurs de compte peuvent effectuer ces tâches. Cependant, les privilèges peuvent être accordés à d’autres rôles, ce qui permet de déléguer les tâches à d’autres utilisateurs du compte.

Attention

L’attribution de CREATE SHARE à d’autres rôles rend la gestion des partages plus flexible, mais permet également aux utilisateurs ayant ces rôles d’exposer tout objet qu’ils possèdent (ou sur lequel ils ont les privilèges nécessaires) à d’autres comptes. Ceci est particulièrement important à noter si vous partagez des données à partir d’un compte qui contient des données sensibles ou de propriétaire.

Veuillez en tenir compte avant d’accorder CREATE SHARE à d’autres rôles.

Dans ce chapitre :

Privilège CREATE SHARE

Si le privilège CREATE SHARE est accordé à un rôle, n’importe quel utilisateur ayant le rôle peut créer un partage. En tant que créateur et, par conséquent, propriétaire du partage, le rôle peut également être utilisé pour exécuter toutes les tâches sur le partage, y compris :

  • Octroyer ou révoquer des privilèges sur les objets de/vers le partage.

  • Ajouter ou supprimer des comptes de consommateur de/vers le partage.

Autorisations requises pour l’octroi ou la révocation de privilèges sur des objets de/vers un partage

Pour exécuter ces tâches sur un partage, le rôle utilisé pour exécuter les tâches doit avoir les autorisations suivantes :

  • OWNERSHIP du partage, et

  • OWNERSHIP ou USAGE/SELECT WITH GRANT OPTION sur chacun des objets à attribuer/révoquer :

    • Base de données

    • Tables

    • Tables externes

    • Vues sécurisées

    • Vues matérialisées sécurisées

    • UDFs sécurisées

Si le rôle n’a pas la combinaison de permissions requise, l’exécution de ces tâches sur le partage échouera.

Note

Il s’agit là d’une mesure délibérée qui garantit que le partage des données avec d’autres comptes nécessite le consentement et l’approbation bilatéraux du propriétaire du partage et du propriétaire des données partagées (en vertu des objets inclus dans le partage). Notez que le même rôle peut être le propriétaire du partage et des objets dans le partage.

Blocage de l’accès aux objets d’un partage

L’accès aux objets d’un partage peut être bloqué soit par le rôle qui possède le partage, soit par le rôle qui possède les objets :

  • Si votre rôle possède le partage, vous pouvez bloquer l’accès en révoquant les privilèges sur les objets du partage.

  • Si votre rôle ne possède pas le partage, mais possède les objets dans le partage, vous pouvez bloquer l’accès en révoquant les privilèges USAGE ou SELECT avec CASCADE sur les objets du propriétaire du partage.

Note

La propriété d’un partage, ainsi que des objets dans le partage, peut se faire soit par une attribution directe au rôle, soit héritée d’un rôle de niveau inférieur dans la hiérarchie des rôles. Pour plus de détails, voir Hiérarchie des rôles et héritage des privilèges.

En outre, il est possible pour le même rôle de posséder un partage et les objets dans le partage.

Attribution du privilège à un autre rôle

Pour attribuer CREATE SHARE à un rôle non ACCOUNTADMIN dans un compte de fournisseur, utilisez le rôle ACCOUNTADMIN et la commande GRANT <privileges> … TO ROLE.

Par exemple, pour accorder le privilège au rôle SYSADMIN :

USE ROLE ACCOUNTADMIN;

GRANT CREATE SHARE ON ACCOUNT TO SYSADMIN;

Privilège IMPORT SHARE

Si le privilège IMPORT SHARE est accordé à un rôle, n’importe quel utilisateur ayant le rôle peut effectuer les tâches suivantes :

  • Voir tous les partages INBOUND (partagés par des comptes de fournisseur) et créer des bases de données pour les partages.

  • Voir tous les partages OUTBOUND possédés par le rôle.

Attribution du privilège à un autre rôle

Pour attribuer IMPORT SHARE à un rôle non ACCOUNTADMIN dans un compte de consommateur, utilisez le rôle ACCOUNTADMIN et la commande GRANT <privileges> … TO ROLE.

Par exemple, pour accorder le privilège au rôle SYSADMIN :

USE ROLE ACCOUNTADMIN;

GRANT IMPORT SHARE ON ACCOUNT TO SYSADMIN;