Controle de acesso para projetos de dbt no Snowflake¶
Os comandos a seguir demonstram os privilégios comumente concedidos para objetos de projeto dbt.
Para conceder privilégios para criar um objeto de projeto dbt, incluindo a implantação de dentro de um espaço de trabalho:
GRANT CREATE DBT PROJECT ON SCHEMA my_database.my_schema TO ROLE my_role
Para conceder privilégios para alterar ou descartar (excluir) um objeto de projeto dbt, incluindo a conexão de um espaço de trabalho com um objeto de projeto dbt:
GRANT OWNERSHIP ON DBT PROJECT my_dbt_project_object TO ROLE my_role
Para conceder privilégios para executar um objeto de projeto dbt e para listar ou obter arquivos:
GRANT USAGE ON DBT PROJECT my_dbt_project_object TO ROLE my_role
Funções e privilégios para execução de projetos dbt¶
Quando você executa um projeto dbt, as funções que realizam a execução e materializam a saída quando você especifica os comandos run
ou build
do dbt dependem do método de execução.
Execução por SQL ou CLI¶
O comando do dbt especificado em EXECUTE DBT PROJECT é executado com os privilégios da role
especificada no bloco outputs
do arquivo profiles.yml
dos projetos. As operações são mais restritas apenas aos privilégios concedidos ao usuário Snowflake que chama EXECUTE DBT PROJECT. Tanto o usuário quanto a função especificados devem ter os privilégios necessários para usar o warehouse
, realizar operações no database
e no schema
especificados no arquivo :file:`profiles.yml`do projeto e executar operações em qualquer outro objeto Snowflake especificado pelo modelo dbt.
Execução de dentro do Workspaces¶
A escolha do comando Run ou Build do dbt para um projeto de dentro de um espaço de trabalho materializa a saída de destino usando tanto a role
definida no arquivo profiles.yml
do projeto quanto todas as funções secundárias do seu usuário Snowflake. Tanto o usuário quanto a função especificados devem ter os privilégios necessários para usar o warehouse
, realizar operações no database
e no schema
especificados no arquivo profiles.yml
do projeto e executar operações em qualquer outro objeto Snowflake especificado pelo modelo dbt.
Execução agendada de dentro do Workspaces¶
Agendar a execução do objeto de projeto dbt de dentro do Workspaces cria tarefas gerenciadas pelo usuário. Para criar uma tarefa de dentro do Workspaces, um usuário deve ter uma função com os privilégios descritos em Requisitos de controle de acesso na referência CREATE TASK. O Snowflake executa tarefas com os privilégios do proprietário da tarefa, mas as execuções não estão associadas a um usuário. Para obter mais informações, consulte Tarefas executadas por um serviço do sistema.