O Dataform e o BigQuery usam o IAM para controle de acesso. Para mais informações sobre 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 Files, expanda o diretório
definitions/
.Selecione o arquivo de definição
.sqlx
da tabela ou visualização a que você quer conceder acesso.No arquivo, digite o seguinte snippet de código:
post_operations { GRANT "ROLE_LIST" ON ${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
USER_LIST: a lista separada por vírgulas de usuários a que o papel é concedido.
Para uma lista de formatos válidos, consulte user_list.
Opcional: clique em Formatar.
Executar a tabela ou visualização.
Se você concedeu acesso a uma tabela incremental, remova a instrução
GRANT
do arquivo de definição da tabela após a primeira execução.
No exemplo de código a seguir, mostramos o papel de Leitor do BigQuery concedido em uma tabela a um usuário:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer` ON ${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 em 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 Files, 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 ${self()} TO "USER_LIST"
Substitua:
- ROLE_LIST: o papel do BigQuery ou a lista de papéis do BigQuery separados por vírgulas que você quer revogar.
- USER_LIST: a lista separada por vírgulas de usuários de que o papel é revogado. Para 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.
Executar a tabela ou visualização.
Se você revogou o acesso a uma tabela incremental, remova a instrução
REVOKE
do arquivo de definição da tabela após a primeira execução.
O exemplo de código a seguir mostra o papel de Leitor do BigQuery revogado de um usuário em uma tabela:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer` ON ${self()} FROM "user:222larabrown@gmail.com"
}
Gerencie coletivamente 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 Files, ao lado de
definitions/
, clique no menu More.Clique em Criar arquivo.
No campo Add a file path, insira o nome do arquivo seguido de
.sqlx
apósdefinitions/
. Por exemplo,definitions/table-access.sqlx
.Os nomes de arquivos só podem incluir 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 que você quer conceder ou revogar.
- RESOURCE_TYPE: o tipo do recurso:
TABLE
ouVIEW
. - RESOURCE_NAME: o nome da tabela ou visualização.
- USER_LIST: a lista separada por vírgulas de usuários para os quais o papel é concedido ou revogado. Para 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 em 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 em 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, consulte 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.