O Dataform e o BigQuery usam o IAM para controle de acesso. Para mais informações sobre os papéis e as 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 funções do BigQuery a tabelas e visualizações individuais para controlar o acesso 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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
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 um espaço de trabalho.
No painel Files, abra 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 este 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 do BigQuery separados por vírgulas que você quer conceder.
RESOURCE_TYPE:
TABLE
ouVIEW
.USER_LIST: a lista separada por vírgulas de usuários a que o papel é concedido.
Para conferir uma lista de formatos válidos, consulte user_list.
Opcional: clique em Formato.
Executar 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 abaixo mostra o papel de Visualizador do BigQuery concedido a um usuário em uma tabela:
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 as funções do BigQuery de uma tabela ou visualização adicionando um bloco post_operations
com a declaração DCL REVOKE
ao arquivo de definição .sqlx
da tabela ou visualização selecionada.
Para revogar as funções 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 um espaço de trabalho.
No painel Files, abra 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()} FROM "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.
- RESOURCE_TYPE:
TABLE
ouVIEW
. - USER_LIST: a lista separada por vírgulas de usuários com o papel revogado. Para conferir 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
.Opcional: clique em Formato.
Executar a tabela ou visualização.
Se você tiver revogado 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 a função Visualizador do BigQuery revogada 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
GRANT
e instruções REVOKE
DCL.
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 um espaço de trabalho.
No painel Files, ao lado de
definitions/
, clique no menuMore.
Selecione Criar arquivo.
No campo Adicionar um caminho de arquivo, digite o nome do arquivo seguido por
.sqlx
apósdefinitions/
. Por exemplo,definitions/table-access.sqlx
.Os nomes de arquivo só podem incluir números, letras, hifens e sublinhados.
Selecione Criar arquivo.
No painel Files, abra o diretório
definitions/
e selecione o arquivo recém-criado.No arquivo, digite este 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 do BigQuery separados por vírgulas 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 a que o papel é concedido ou revogado. Para conferir uma lista de formatos válidos, consulte user_list.
Inclua 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
.A remoção da instrução
GRANT
sem adicionar a instruçãoREVOKE
não revoga o acesso.
Opcional: clique em Formato.
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, 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.