GRANT DATABASE ROLE … TO SHARE

Weist eine Datenbankrolle einer Freigabe zu. Durch das Zuweisen einer Datenbankrolle werden Berechtigungen für eine einzelne Datenbank einer Freigabe hinzugefügt, die dann für ein oder mehrere Verbraucherkonten freigegeben werden kann.

Nachdem Verbraucher eine Datenbank aus der Freigabe erstellt haben, können sie den Rollen in ihrem Konto die Datenbankrollen der freigegebenen Datenbank zuweisen, um Benutzern mit diesen Rollen den Zugriff auf Datenbankobjekte in der Freigabe zu ermöglichen.

Weitere Details dazu finden Sie unter Einführung in Secure Data Sharing und Verwenden von Freigaben.

Siehe auch:

REVOKE DATABASE ROLE … FROM SHARE

Syntax

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

Parameter

name

Gibt den Bezeichner (d. h. den Namen) der Datenbankrolle an. Dieser muss für die Datenbank, in der die Rolle erstellt wird, eindeutig sein.

Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Wenn der Bezeichner nicht vollqualifiziert ist (im Format db_name.database_role_name), sucht der Befehl die Datenbankrolle in der aktuellen Datenbank der Sitzung.

share_name

Gibt den Bezeichner der Freigabe an, von der aus die angegebene Datenbankrolle zugewiesen wird.

Nutzungshinweise

  • Das Zuweisen einer Datenbankrolle für eine Freigabe schlägt fehl, wenn der Datenbankrolle eine DDL- oder eine andere eingeschränkte Berechtigung zugewiesen wurde. Eine Datenbankrolle kann einer Datenbank und deren Objekten nur Berechtigungen für Leseaktivitäten erteilen.

  • Eine freigegebene Datenbankrolle unterstützt keine zukünftigen Berechtigungszuweisungen. Je nach ausgeführter Aktion gibt Snowflake die folgende Fehlermeldung zurück:

    • Sie erteilen einer Datenbankrolle zukünftige Berechtigungen für ein Objekt und weisen dann der Freigabe die Datenbankrolle zu:

      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.
      
    • Sie weisen die Datenbankrolle einer Freigabe zu und erteilen dann der Datenbankrolle zukünftige Berechtigungen für ein Objekt:

      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.
      

    Verwenden Sie die folgenden Befehle, um festzustellen, ob Sie über zukünftige Berechtigungszuweisungen in Verbindung mit einer Datenbankrolle verfügen, um diese Fehlermeldungen zu vermeiden:

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

Beispiele

Zuweisen der Datenbankrolle dr1 in der Datenbank d1 zur Freigabe share1:

GRANT DATABASE ROLE d1.dr1 TO SHARE share1;
Copy