O Dataform e o BigQuery usam o IAM para o controle de acesso. Para mais informações sobre os papéis do Dataform e no IAM, consulte Controlar o acesso com o IAM
Quando o Dataform executa uma tabela ou visualização, ele cria o recurso em no BigQuery. Durante o desenvolvimento no Dataform, é possível conceder papéis do BigQuery a tabelas e visualizações individuais para controlar o acesso delas no BigQuery após a execução.
Para mais informações sobre como conceder e revogar o acesso a recursos, consulte Conceda 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
Para conceder papéis do BigQuery a uma tabela ou visualização no Dataform
adicionando um bloco post_operations
com
a instrução de 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
definitions/
.Selecione o arquivo de definição de
.sqlx
da tabela ou visualização. aos quais 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 valores separados por vírgula os papéis do BigQuery que você quer conceder.
RESOURCE_TYPE:
TABLE
ouVIEW
.USER_LIST: a lista separada por vírgulas de usuários que o recebe o papel.
Para 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 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
Para revogar papéis do BigQuery de uma tabela ou visualização, adicione um
Bloco post_operations
com
a instrução de 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
definitions/
.Selecione o arquivo de definição de
.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 valores separados por vírgula os papéis do BigQuery que você quer revogar.
- RESOURCE_TYPE:
TABLE
ouVIEW
. - USER_LIST: a lista separada por vírgulas de usuários que o do usuário for revogado. Para uma lista de formatos válidos, consulte user_list.
Para revogar o acesso concedido em uma instrução
GRANT
no arquivo, substitua as InstruçãoGRANT
com 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 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
GRANT
e REVOKE
instruções de 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, em seguida, um espaço de trabalho.
No painel Arquivos, ao lado de
definitions/
, clique no Menu Mais.Clique em Criar arquivo.
No campo Add a file path, digite 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 valores separados por vírgula os papéis 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 que o 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 as InstruçãoGRANT
com 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 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 o
A seguir
- Para saber mais sobre o IAM, consulte Visão geral do IAM.
- Para saber mais sobre funções 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.