Aktivieren von Nicht-ACCOUNTADMIN-Rollen zur Ausführung von Data Sharing-Aufgaben

Snowflake bietet zwei globale/Kontoberechtigungen für die Ausführung aller Aufgaben im Zusammenhang mit Freigaben:

CREATE SHARE

Ermöglicht das Erstellen und Verwalten von Freigaben in einem Anbieterkonto (für die Datenfreigabe mit Verbraucherkonten).

IMPORT SHARE

Ermöglicht in einem Verbraucherkonto die Anzeige der eingehenden Freigaben, die mit dem Konto geteilten werden, und die Erstellung von Datenbanken aus den Freigaben.

Standardmäßig werden diese Berechtigungen nur der Rolle ACCOUNTADMIN gewährt, damit sichergestellt ist, dass nur Kontoadministratoren diese Aufgaben ausführen können. Die Berechtigungen können jedoch auch anderen Rollen erteilt werden, sodass die Aufgaben an andere Benutzer im Konto delegiert werden können.

Achtung

Die Zuweisung von CREATE SHARE an andere Rollen macht die Verwaltung von Freigaben flexibler, ermöglicht aber auch Benutzern mit diesen Rollen, alle Objekte, die sie besitzen (oder für die sie die notwendigen Berechtigungen haben), anderen Konten zugänglich zu machen. Dies ist besonders wichtig, wenn Sie Daten eines Kontos freigeben, das sensible oder geschützte Daten enthält.

Beachten Sie dies, bevor Sie CREATE SHARE an andere Rollen vergeben.

Unter diesem Thema:

Berechtigung CREATE SHARE

Wenn die Berechtigung CREATE SHARE einer Rolle erteilt wird, kann jeder Benutzer mit der Rolle eine Freigabe erstellen. Als Ersteller und damit Eigentümer der Freigabe kann die Rolle auch verwendet werden, um alle Aufgaben auf der Freigabe auszuführen, einschließlich:

  • Erteilen oder Entziehen von Berechtigungen für Objekte der Freigabe

  • Hinzufügen oder Entfernen von Verbraucherkonten zu/aus Freigaben

Erforderliche Berechtigungen für das Erteilen oder Entziehen von Objektberechtigungen einer Freigabe

Um diese Aufgaben auf einer Freigabe auszuführen, muss die Rolle, mit der die Aufgaben ausgeführt werden, über die folgenden Berechtigungen verfügen:

  • OWNERSHIP der Freigabe und

  • OWNERSHIP oder USAGE/SELECT WITH GRANT OPTION auf jedem der zu erteilenden/zu entziehenden Objekte:

    • Datenbank

    • Tabellen

    • Externe Tabellen

    • Sichere Ansichten

    • Sichere materialisierte Ansichten

    • Sichere UDFs

Wenn die Rolle nicht die erforderliche Kombination von Berechtigungen hat, schlägt die Ausführung dieser Aufgaben auf der Freigabe fehl.

Bemerkung

Dies ist beabsichtigt, denn es stellt sicher, dass die Freigabe von Daten für andere Konten die bilaterale Zustimmung bzw. Genehmigung sowohl des Eigentümers der Freigabe als auch des Eigentümers der freigegebenen Daten (aufgrund der in der Freigabe enthaltenen Objekte) erfordert. Beachten Sie, dass die gleiche Rolle der Eigentümer der Freigabe und der Objekte in der Freigabe sein kann.

Blockieren des Zugriffs auf Objekte einer Freigabe

Der Zugriff auf Objekte einer Freigabe kann entweder von der Rolle, die die Freigabe besitzt, oder von der Rolle, die die Objekte besitzt, blockiert werden:

  • Wenn Ihre Rolle Eigentümer der Freigabe ist, können Sie den Zugriff blockieren, indem Sie die Berechtigungen für die Objekte aus der Freigabe entziehen.

  • Wenn Ihre Rolle nicht Eigentümer der Freigabe, sondern der Objekte in der Freigabe ist, können Sie den Zugriff blockieren, indem Sie mit CASCADE die USAGE- oder SELECT-Berechtigungen an den Objekte für den Eigentümer der Freigabe widerrufen.

Bemerkung

Die Eigentümerschaft einer Freigabe sowie der Objekte in der Freigabe kann entweder durch eine direkte Zuweisung an die Rolle erfolgen oder von einer untergeordneten Rolle in der Rollenhierarchie geerbt werden. Weitere Details dazu finden Sie unter Rollenhierarchie und Vererbung von Berechtigungen.

Außerdem ist es möglich, dass dieselbe Rolle eine Freigabe und die Objekte in dieser Freigabe besitzt.

Erteilen von Berechtigungen an eine andere Rolle

Um CREATE SHARE einer Nicht-ACCOUNTADMIN-Rolle in einem Anbieterkonto zu gewähren, verwenden Sie die ACCOUNTADMIN-Rolle und den Befehl GRANT <Berechtigungen> … TO ROLE.

So erteilen Sie beispielsweise der Rolle SYSADMIN die Berechtigung:

USE ROLE ACCOUNTADMIN;

GRANT CREATE SHARE ON ACCOUNT TO SYSADMIN;

Berechtigung IMPORT SHARE

Wenn die Berechtigung IMPORT SHARE einer Rolle erteilt wird, kann jeder Benutzer mit dieser Rolle die folgenden Aufgaben ausführen:

  • Anzeigen aller INBOUND-Freigaben (die von den Anbietern gemeinsam genutzt werden), und Erstellen von Datenbanken für die Freigaben.

  • Anzeigen aller OUTBOUND-Freigaben, die Eigentum der Rolle sind.

Erteilen von Berechtigungen an eine andere Rolle

Um IMPORT SHARE einer Nicht-ACCOUNTADMIN-Rolle in einem Verbraucherkonto zu gewähren, verwenden Sie die ACCOUNTADMIN-Rolle und den Befehl GRANT <Berechtigungen> … TO ROLE.

So erteilen Sie beispielsweise der Rolle SYSADMIN die Berechtigung:

USE ROLE ACCOUNTADMIN;

GRANT IMPORT SHARE ON ACCOUNT TO SYSADMIN;