Zugriffssteuerung für dbt-Projekte in Snowflake¶
Die folgenden Befehle veranschaulichen häufig gewährte Berechtigungen für dbt-Projektobjekte.
So erteilen Sie Berechtigungen zum Erstellen eines dbt-Projektobjekts, einschließlich dessen Bereitstellung innerhalb eines Arbeitsbereichs:
GRANT CREATE DBT PROJECT ON SCHEMA my_database.my_schema TO ROLE my_role
So gewähren Sie Berechtigungen zum Ändern oder Entfernen (Löschen) eines dbt-Projektobjekts, einschließlich der Verbindung eines Arbeitsbereichs mit einem dbt-Projektobjekt:
GRANT OWNERSHIP ON DBT PROJECT my_dbt_project_object TO ROLE my_role
So gewähren Sie Berechtigungen zum Ausführen eines dbt-Projektobjekts und zum Auflisten oder Abrufen von Dateien:
GRANT USAGE ON DBT PROJECT my_dbt_project_object TO ROLE my_role
Rollen und Berechtigungen für die Ausführung von dbt-Projekten¶
Wenn Sie ein dbt-Projekt ausführen, hängen die Rollen, die die Ausführung durchführen und die Ausgabe materialisieren, wenn Sie den dbt-Befehl run
oder build
angeben, von der Ausführungsmethode ab.
Ausführung von SQL oder CLI¶
Der in EXECUTE DBT PROJECT angegebene dbt-Befehl wird mit den Berechtigungen der role
ausgeführt, die im outputs
-Block der Datei profiles.yml
des Projekts angegeben ist. Außerdem sind Vorgänge auf die Berechtigungen beschränkt, die dem Snowflake-Benutzer gewährt werden, der EXECUTE DBT PROJECT aufruft. Sowohl der Benutzer als auch die angegebene Rolle müssen über die erforderlichen Berechtigungen verfügen, um das warehouse
verwenden zu können, Vorgänge für database
und schema
auszuführen, die in der Datei profiles.yml
des Projekts angegeben sind, und Vorgänge für alle anderen Snowflake-Objekten auszuführen, die das dbt-Modell angibt.
Ausführung innerhalb von Arbeitsbereichen¶
Wenn Sie den dbt-Befehl Run oder Build für ein Projekt aus einem Arbeitsbereich heraus auswählen, wird die Zielausgabe unter Verwendung der in der Datei profiles.yml
des Projekts definierten role
und aller Sekundärrollen Ihres Snowflake-Benutzers materialisiert. Sowohl der Benutzer als auch die angegebene Rolle müssen über die erforderlichen Berechtigungen verfügen, um das warehouse
verwenden zu können, Operationen für database
und schema
auszuführen, die in der Datei profiles.yml
des Projekts angegeben sind, und Operationen für alle anderen Snowflake-Objekten auszuführen, die das dbt-Modell angibt.
Geplante Ausführung innerhalb von Arbeitsbereichen¶
Wenn Sie die Ausführung von dbt-Projektobjekten über Arbeitsbereiche hinweg planen, werden benutzerverwaltete Aufgaben erstellt. Um eine Aufgabe aus Arbeitsbereichen heraus erstellen zu können, muss ein Benutzer über eine Rolle mit den unter Anforderungen an die Zugriffssteuerung in der Referenz zu CREATE TASK beschriebenen Berechtigungen verfügen. Snowflake führt Aufgaben mit den Berechtigungen des Aufgabeneigentümer aus, aber die Aufgabenausführungen sind dem Benutzer nicht zugeordnet. Weitere Informationen dazu finden Sie unter Aufgaben, die von einem Systemdienst ausgeführt werden.