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
    
    Copy
  • 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
    
    Copy
  • 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
    
    Copy

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.