O Dataform e o BigQuery usam o IAM para controle de acesso. Para mais informações sobre os papéis e permissões do Dataform no IAM, consulte Controlar o acesso com o IAM.
Quando o Dataform executa uma tabela ou visualização, ele cria o recurso no BigQuery. Durante o desenvolvimento no Dataform, é possível conceder papéis do BigQuery a tabelas e visualizações individuais para controlar o acesso deles no BigQuery após a execução.
Para mais informações sobre como conceder e revogar o acesso a recursos, consulte Conceder acesso a um recurso.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs BigQuery and Dataform.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs BigQuery and Dataform.
Conceder papéis do BigQuery a uma tabela ou visualização
É possível conceder papéis do BigQuery a uma tabela ou visualização no Dataform adicionando um bloco post_operations
com a instrução DCL GRANT
ao arquivo de definição .sqlx
da tabela ou visualização selecionada.
Para conceder papéis do BigQuery a uma tabela ou visualização selecionada, siga estas etapas:
No Console do Google Cloud, acesse a página Dataform.
Selecione um repositório e, em seguida, um espaço de trabalho.
No painel Arquivos, expanda o diretório
definitions/
.Selecione o arquivo de definição
.sqlx
da tabela ou visualização em que você quer conceder acesso.No arquivo, digite o seguinte snippet de código:
post_operations { GRANT "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST" }
Substitua:
ROLE_LIST: o papel do BigQuery ou a lista de papéis separados por vírgulas que você quer conceder.
RESOURCE_TYPE:
TABLE
ouVIEW
.USER_LIST: a lista separada por vírgulas de usuários aos quais o papel é concedido.
Para ver uma lista de formatos válidos, consulte user_list.
Opcional: clique em Formatar.
Execute a tabela ou visualização.
Se você concedeu acesso a uma tabela incremental, remova a instrução
GRANT
do arquivo de definição de tabela após a primeira execução.
O exemplo de código a seguir mostra o papel Leitor do BigQuery concedido em uma tabela a um usuário:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON TABLE ${self()}
TO "user:222larabrown@gmail.com"
}
Revogar papéis do BigQuery de uma tabela ou visualização
É possível revogar os papéis do BigQuery de uma tabela ou visualização adicionando um bloco post_operations
com a instrução DCL REVOKE
ao arquivo de definição .sqlx
da tabela ou visualização selecionada.
Para revogar os papéis do BigQuery de uma tabela ou visualização selecionada, siga estas etapas:
No Console do Google Cloud, acesse a página Dataform.
Selecione um repositório e, em seguida, um espaço de trabalho.
No painel Arquivos, expanda o diretório
definitions/
.Selecione o arquivo de definição
.sqlx
da tabela ou visualização em que você quer revogar o acesso.No bloco
post_operations
, insira a seguinte instruçãoREVOKE
:REVOKE "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST"
Substitua:
- ROLE_LIST: o papel do BigQuery ou a lista de papéis separados por vírgulas que você quer revogar.
- RESOURCE_TYPE:
TABLE
ouVIEW
. - USER_LIST: a lista separada por vírgulas de usuários a partir do qual o papel é revogado. Para ver uma lista de formatos válidos, consulte user_list.
Para revogar o acesso concedido em uma instrução
GRANT
no arquivo, substitua a instruçãoGRANT
por uma instruçãoREVOKE
.Removing the `GRANT` statement without adding the `REVOKE` statement does not revoke access.
Opcional: clique em Formatar.
Execute a tabela ou visualização.
Se você revogou o acesso a uma tabela incremental, remova a instrução
REVOKE
do arquivo de definição de tabela após a primeira execução.
O exemplo de código a seguir mostra o papel Leitor do BigQuery revogado de um usuário em uma tabela:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer`
ON TABLE ${self()}
FROM "user:222larabrown@gmail.com"
}
Gerenciar coletivamente os papéis do BigQuery para tabelas e visualizações
Para controlar o acesso do BigQuery a tabelas e visualizações individuais em um único local, crie um arquivo type: "operations"
dedicado com instruções DCL GRANT
e REVOKE
.
Para gerenciar o acesso à tabela do BigQuery em um único arquivo type: "operations"
, siga estas etapas:
No Console do Google Cloud, acesse a página Dataform.
Selecione um repositório e, em seguida, um espaço de trabalho.
No painel Arquivos, ao lado de
definitions/
, clique no menu Mais .Clique em Criar arquivo.
No campo Adicionar um caminho de arquivo, insira o nome do arquivo seguido de
.sqlx
apósdefinitions/
. Por exemplo,definitions/table-access.sqlx
.Os nomes de arquivos podem incluir apenas números, letras, hifens e sublinhados.
Clique em Criar arquivo.
No painel Files, expanda o diretório
definitions/
e selecione o arquivo recém-criado.No arquivo, digite o seguinte snippet de código:
config { type: "operations" } GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST" REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Substitua:
- ROLE_LIST: o papel do BigQuery ou a lista de papéis separados por vírgulas do BigQuery que você quer conceder ou revogar.
- RESOURCE_TYPE:
TABLE
ouVIEW
. - RESOURCE_NAME: o nome da tabela ou visualização.
- USER_LIST: a lista separada por vírgulas de usuários aos quais o papel é concedido ou revogado. Para ver uma lista de formatos válidos, consulte user_list.
Adicione instruções
GRANT
eREVOKE
conforme necessário.Para revogar o acesso concedido em uma instrução
GRANT
no arquivo, substitua a instruçãoGRANT
por uma instruçãoREVOKE
.Remover a instrução
GRANT
sem adicionar a instruçãoREVOKE
não revoga o acesso.
Opcional: clique em Formatar.
Execute o arquivo após cada atualização.
- Se você concedeu ou revogou o acesso a uma tabela incremental, remova a instrução
GRANT
ouREVOKE
do arquivo após a primeira execução da instrução.
- Se você concedeu ou revogou o acesso a uma tabela incremental, remova a instrução
A seguir
- Para saber mais sobre o IAM, consulte a Visão geral do IAM.
- Para saber mais sobre papéis e permissões, veja Noções básicas sobre papéis.
- Para saber mais sobre como gerenciar o acesso a recursos, consulte Gerenciar o acesso a projetos, pastas e organizações.