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 :
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 :
Pour accorder des privilèges pour exécuter un objet de projet dbt et pour lister ou obtenir des fichiers :
To view a dbt project object in Snowsight, you must use a role that has the MONITOR privilege on that dbt project object. Without this privilege, you can’t access the project details, run history, or monitoring information:
Pour plus d’informations, voir privilèges d’objet du projet dbt.
Rôles et privilèges pour le déploiement de projets dbt¶
Deploying a dbt project from Snowsight initially uses the role you select from Connect » Deploy dbt project. During compilation, the dbt project object uses the role specified in the target profile in the profiles.yml file, unless the object has the DEFAULT_TARGET attribute, which takes precedence.
De même, le déploiement d’un projet dbt à partir de SQL ou CLI utilise initialement le rôle dans la feuille de calcul ou connection.toml, respectivement, puis utilise le rôle spécifié dans la commande. La compilation lors du déploiement utilise le rôle dans le profil cible dans profiles.yml, à moins que l’objet ne dispose de l’attribut DEFAULT_TARGET, qui a la priorité.
Rôles et privilèges pour l’exécution de projets dbt¶
When you execute a dbt project object, the roles that perform execution and that materialize output when you specify the dbt run or build commands depend on the method of execution.
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¶
Choosing the dbt Run or Build command for a project from within a workspace materializes target output using the role defined in the project’s profiles.yml file. Both the user and the role specified must have the required privileges to use the warehouse, perform operations on the database and schema that are specified in the project’s profiles.yml file, and perform operations on any other Snowflake objects that the dbt model specifies.
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.