GRANT DATABASE ROLE … TO SHARE

Accorde un rôle de base de données à un partage. L’octroi d’un rôle de base de données ajoute effectivement des privilèges sur une seule base de données au partage, qui peut ensuite être partagé avec un ou plusieurs comptes consommateurs.

Après avoir créé une base de données à partir du partage, les consommateurs peuvent accorder les rôles de base de données partagée aux rôles de leur compte pour permettre aux utilisateurs disposant de ces rôles d’accéder aux objets de la base de données dans le partage.

Pour plus de détails, voir Présentation de Secure Data Sharing et Utilisation des partages.

Voir aussi :

REVOKE DATABASE ROLE … FROM SHARE

Syntaxe

GRANT DATABASE ROLE <name>
  TO SHARE <share_name>
Copy

Paramètres

name

Spécifie l’identificateur (c’est-à-dire le nom) du rôle de la base de données ; il doit être unique dans la base de données dans laquelle le rôle est créé.

L’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Si l’identificateur n’est pas complet (sous la forme de db_name.database_role_name), la commande recherche le rôle de base de données dans la base de données actuelle de la session.

share_name

Indique l’identificateur du partage à partir duquel le rôle de base de données spécifié est accordé.

Notes sur l’utilisation

  • L’octroi d’un rôle de base de données à un partage échoue si un DDL ou un autre privilège restreint a été accordé au rôle de base de données. Un rôle de base de données peut uniquement accorder des autorisations pour une activité en lecture seule sur une base de données et ses objets.

  • Un rôle de base de données partagé ne prend pas en charge les attributions futures. Snowflake renvoie le message d’erreur suivant en fonction de l’action que vous entreprenez :

    • Accordez des privilèges futurs sur un objet à un rôle de base de données et accordez le rôle de base de données au partage :

      GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
      GRANT DATABASE ROLE dbr1 TO SHARE myshare;
      
      Copy
      Cannot share a database role with future grants to it.
      
    • Accordez le rôle de base de données à un partage et accordez des privilèges futurs sur un objet au rôle de base de données :

      GRANT DATABASE ROLE dbr1 TO SHARE myshare;
      GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
      
      Copy
      Cannot grant future grants to a database role that is granted to a share.
      

    Utilisez les commandes suivantes pour identifier si vous avez des attributions futures associées à un rôle de base de données afin d’éviter ces messages d’erreur :

    SHOW FUTURE GRANTS IN DATABASE parent_db;
    SHOW FUTURE GRANTS IN shared_schema;
    
    Copy

Exemples

Accorder le rôle de base de données dr1 dans la base de données d1 au partage share1 :

GRANT DATABASE ROLE d1.dr1 TO SHARE share1;
Copy