Contrôle d’accès pour les projets dbt sur Snowflake¶
Les commandes suivantes illustrent les privilèges couramment accordés pour les objets de projet dbt.
Pour accorder des privilèges pour créer un objet de projet dbt, y compris le déploiement à partir d’un espace de travail :
GRANT CREATE DBT PROJECT ON SCHEMA my_database.my_schema TO ROLE my_role
Pour accorder des privilèges pour modifier ou supprimer un objet de projet dbt, y compris la connexion d’un espace de travail à un objet de projet dbt :
GRANT OWNERSHIP ON DBT PROJECT my_dbt_project_object TO ROLE my_role
Pour accorder des privilèges pour exécuter un objet de projet dbt et pour lister ou obtenir des fichiers :
GRANT USAGE ON DBT PROJECT my_dbt_project_object TO ROLE my_role
Rôles et privilèges pour l’exécution de projets dbt¶
Lorsque vous exécutez un projet dbt, les rôles qui effectuent l’exécution et qui matérialisent la sortie lorsque vous spécifiez les commandes dbt run
ou build
dépendent de la méthode d’exécution.
Exécution à partir de SQL ou CLI¶
La commande dbt spécifiée dans EXECUTE DBT PROJECT s’exécute avec les privilèges du role
spécifié dans le bloc outputs
du fichier profiles.yml
des projets. Les opérations sont en outre limitées aux seuls privilèges accordés à l’utilisateur Snowflake appelant EXECUTE DBT PROJECT. L’utilisateur et le rôle spécifiés doivent tous deux disposer des privilèges requis pour utiliser l”warehouse
, effectuez des opérations sur les database
et schema
spécifiés dans le fichier profiles.yml
du projet, et effectuer des opérations sur tous les autres objets Snowflake que le modèle dbt spécifie.
Exécution à partir des espaces de travail¶
Le choix des commandes dbt Run ou Build pour un projet dans un espace de travail matérialise la sortie cible en utilisant à la fois le role
défini dans le fichier profiles.yml
du projet et tous les rôles secondaires de votre utilisateur Snowflake. L’utilisateur et le rôle spécifiés doivent tous deux disposer des privilèges requis pour utiliser l”warehouse
, effectuez des opérations sur les database
et schema
qui sont spécifiés dans le fichier profiles.yml
du projet, et effectuer des opérations sur tous les autres objets Snowflake que le modèle dbt spécifie.
Exécution planifiée à partir des espaces de travail¶
La planification de l’exécution des objets de projet dbt à partir des espaces de travail crée des tâches gérées par l’utilisateur. Pour créer une tâche à partir des espaces de travail, un utilisateur doit disposer d’un rôle avec des privilèges décrits sous Exigences en matière de contrôle d’accès dans la référence CREATE TASK. Snowflake exécute des tâches avec les privilèges du propriétaire, mais les tâches exécutées ne sont pas associées à un utilisateur. Pour plus d’informations, voir Tâches exécutées par un service système.