Nesta página, você encontra informações sobre papéis e permissões do gerenciamento de identidade e acesso (IAM, na sigla em inglês) do BigQuery.
Aqui você encontra os papéis e permissões relevantes para cada um dos produtos complementares do BigQuery:
- BigQuery ML
- Serviço de transferência de dados do BigQuery
- BigQuery BI Engine
Para informações sobre controles de acesso no BigQuery ML, consulte Controle de acesso na documentação do BigQuery ML.
Visão geral
Quando uma identidade chama uma API do Google Cloud, o BigQuery exige que a identidade tenha as permissões apropriadas para usar o recurso. É possível conceder permissões ao atribuir papéis a um usuário, grupo ou conta de serviço.
Nesta página, descrevemos os papéis do IAM do BigQuery que podem ser concedidos a identidades para acessar recursos do BigQuery.
Tipos de papéis do IAM
Existem três tipos de papéis no IAM:
Papéis básicos incluem os papéis de proprietário, editor e leitor. Os papéis básicos representam os controles de acesso existentes antes da introdução do IAM.
Papéis predefinidos fornecem acesso granular a um serviço específico e são gerenciados pelo Google Cloud. Eles destinam-se a oferecer suporte a casos de uso comuns e padrões de controle de acesso.
Papéis personalizados dão acesso granular de acordo com uma lista de permissões especificada pelo usuário.
Para determinar se uma ou mais permissões estão incluídas em um papel básico, predefinido ou personalizado, use um dos métodos a seguir:
- O comando
gcloud iam roles describe
- O método
roles.get()
na API IAM
Quando você atribui papéis predefinidos e básicos a um usuário, as permissões concedidas são uma união das permissões de cada papel.
Para mais informações sobre como usar o IAM para acessar recursos, consulte Como conceder, alterar e revogar acesso a recursos na documentação do IAM.
Para informações sobre como criar papéis personalizados, consulte Como criar e gerenciar papéis personalizados na documentação do IAM
Permissões do BigQuery e papéis predefinidos do IAM
Para conceder acesso a um recurso do BigQuery, atribua um ou mais papéis a um usuário, grupo ou conta de serviço. É possível conceder acesso nos seguintes níveis de recursos do BigQuery:
- Organização ou nível de projeto do Google Cloud
- Nível do conjunto de dados
- Nível de tabela ou visualização
Papéis aplicados no nível da organização ou do projeto do Cloud
Ao atribuir papéis no nível da organização e do projeto, você concede permissão para executar jobs do BigQuery ou acessar todos os recursos do BigQuery de um projeto.
Papéis aplicados no nível do conjunto de dados
É possível atribuir papéis no nível do conjunto de dados para fornecer acesso a um conjunto de dados específico, sem dar acesso total aos recursos do projeto. Na hierarquia de políticas do Cloud IAM, os conjuntos de dados do BigQuery são recursos filhos de projetos. Para mais informações sobre como atribuir papéis no nível do conjunto de dados, consulte Como controlar o acesso a conjuntos de dados.
Papéis aplicados a recursos individuais dentro de conjuntos de dados
É possível atribuir papéis individualmente a determinados tipos de recursos dentro de conjuntos de dados, sem fornecer acesso total aos recursos do conjunto de dados.
Os papéis podem ser aplicados a recursos individuais dos seguintes tipos:
- tabelas
- visualizações
Os papéis não podem ser aplicados a recursos individuais dos seguintes tipos:
- rotinas
- modelos
Para mais informações sobre como atribuir papéis no nível da tabela ou da visualização, consulte Como controlar o acesso a tabelas ou visualizações.
Permissões do BigQuery
A tabela a seguir descreve as permissões disponíveis no BigQuery.
Permissão | Descrição |
---|---|
bigquery.bireservations.get (Beta) |
Lê as reservas do mecanismo de BI. |
bigquery.bireservations.update (Beta) |
Atualiza reservas do BI Engine. |
bigquery.capacityCommitments.create (Beta) |
Cria um compromisso de capacidade no projeto. |
bigquery.capacityCommitments.delete (Beta) |
Exclui um compromisso de capacidade. |
bigquery.capacityCommitments.get (Beta) |
Recupera detalhes sobre um compromisso de capacidade. |
bigquery.capacityCommitments.list (Beta) |
Lista todos os compromissos de capacidade em um projeto. |
bigquery.capacityCommitments.update (Beta) |
Atualiza todos os compromissos de capacidade em um projeto. |
bigquery.connections.create |
Cria novas conexões em um projeto. |
bigquery.connections.delete |
Exclui uma conexão. |
bigquery.connections.get |
Recebe metadados de conexão. As credenciais são excluídas. |
bigquery.connections.list |
Lista conexões em um projeto. |
bigquery.connections.update |
Atualiza uma conexão e as credenciais dela. |
bigquery.connections.use |
Usa uma configuração de conexão para se conectar a uma fonte de dados remota. |
bigquery.datasets.create |
Cria novos conjuntos de dados vazios. |
bigquery.datasets.delete |
Excluir um conjunto de dados. |
bigquery.datasets.get |
Recebe metadados sobre um conjunto de dados. |
bigquery.datasets.getIamPolicy |
Ler as permissões de IAM de um conjunto de dados. |
bigquery.datasets.setIamPolicy |
Alterar as permissões de IAM de um conjunto de dados. |
bigquery.datasets.update |
Atualiza metadados de um conjunto de dados. |
bigquery.datasets.updateTag (Beta) |
Atualizar tags para um conjunto de dados. |
bigquery.jobs.create |
Executa jobs (incluindo consultas) no projeto. |
bigquery.jobs.get |
Recebe dados e metadados em qualquer job.1 |
bigquery.jobs.list |
Lista todos os jobs e recupera metadados em qualquer job enviado por qualquer usuário.1 Para jobs enviados por outros usuários, detalhes e metadados são editados. |
bigquery.jobs.listAll |
Lista todos os jobs e recupera metadados de qualquer job enviado por qualquer usuário.1 |
bigquery.jobs.update |
Cancela qualquer job.1 |
bigquery.models.create |
Cria novos modelos. |
bigquery.models.delete |
Exclui modelos. |
bigquery.models.getData |
Recebe dados do modelo. Para ver os metadados do modelo, você precisa de bigquery.models.getMetadata . |
bigquery.models.getMetadata |
Recebe metadados do modelo. Para ver os dados do modelo, você precisa de bigquery.models.getData . |
bigquery.models.list |
Lista modelos e metadados em modelos. |
bigquery.models.updateData |
Atualiza os dados do modelo. Para atualizar os metadados do modelo, você precisa de bigquery.models.updateMetadata . |
bigquery.models.updateMetadata |
Atualiza os metadados do modelo. Para atualizar os dados do modelo, você precisa de
bigquery.models.updateData . |
bigquery.models.export |
Exportar um modelo. |
bigquery.readsessions.create |
Cria uma nova sessão de leitura por meio da API BigQuery Storage. |
bigquery.readsessions.getData |
Lê dados de uma sessão de leitura por meio da API BigQuery Storage. |
bigquery.readsessions.update |
Atualiza uma sessão de leitura por meio da API BigQuery Storage. |
bigquery.reservations.create (Beta) |
Cria uma reserva em um projeto. |
bigquery.reservations.delete (Beta) |
Exclui uma reserva. |
bigquery.reservations.get (Beta) |
Recupera detalhes sobre uma reserva. |
bigquery.reservations.list (Beta) |
Lista todas as reservas em um projeto. |
bigquery.reservations.update (Beta) |
Atualiza as propriedades de uma reserva. |
bigquery.reservationAssignments.create (Beta) |
Cria uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência. |
bigquery.reservationAssignments.delete (Beta) |
Exclui uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência. |
bigquery.reservationAssignments.list (Beta) |
Lista todas as atribuições de reserva em um projeto. |
bigquery.reservationAssignments.search (Beta) |
Pesquisa uma atribuição de reserva para um determinado projeto, pasta ou organização. |
bigquery.routines.create |
Cria novas rotinas (funções e procedimentos armazenados). |
bigquery.routines.delete |
Exclui rotinas. |
bigquery.routines.get |
Recebe definições e metadados de rotina. |
bigquery.routines.list |
Lista rotinas e metadados em rotinas. |
bigquery.routines.update |
Atualiza definições e metadados de rotina. |
bigquery.savedqueries.create |
Cria consultas salvas. |
bigquery.savedqueries.delete |
Exclui consultas salvas. |
bigquery.savedqueries.get |
Recebe metadados em consultas salvas. |
bigquery.savedqueries.list |
Listar de consultas salvas. |
bigquery.savedqueries.update |
Atualiza consultas salvas. |
bigquery.tables.create |
Cria novas tabelas. |
bigquery.tables.delete |
Exclui tabelas. |
bigquery.tables.export |
Exporta dados de tabela do BigQuery. |
bigquery.tables.get |
Recebe metadados de tabela. Para ver os dados da tabela, você precisa bigquery.tables.getData . |
bigquery.tables.getData |
Recebe dados da tabela. Essa permissão é obrigatória para consultar dados da tabela. Para ver os metadados da tabela, você precisa bigquery.tables.get . |
bigquery.tables.getIamPolicy |
Faz a leitura da política do Cloud IAM de uma tabela. |
bigquery.tables.list |
Lista tabelas e metadados em tabelas. |
bigquery.tables.setCategory |
Define as tags de política no esquema da tabela. |
bigquery.tables.setIamPolicy |
Altera a política do Cloud IAM de uma tabela. |
bigquery.tables.update |
Atualiza os metadados da tabela. |
bigquery.tables.updateData |
Atualiza os dados da tabela. |
bigquery.tables.updateTag (Beta) |
Atualize as tags de uma tabela. |
bigquery.transfers.get |
Recebe metadados de transferência. |
bigquery.transfers.update |
Cria, atualiza e exclui transferências. |
1Para qualquer job criado, você tem automaticamente o
equivalente às permissões
bigquery.jobs.get
e bigquery.jobs.update
.
Papéis predefinidos do IAM do BigQuery
A tabela abaixo mostra os papéis de IAM do BigQuery com uma lista correspondente de todas as permissões que cada papel inclui. Cada permissão se aplica a um tipo específico de recurso.
Papel | Nome | Descrição | Permissões | Menor recurso |
---|---|---|---|---|
roles/ |
Administrador do BigQuery | Concede permissões para gerenciar todos os recursos dentro do projeto. Consegue gerenciar todos os dados no projeto e cancelar jobs de outros usuários que estejam sendo executados dentro do projeto. |
|
Projeto |
roles/ |
Administrador de conexão do BigQuery |
|
||
roles/ |
Usuário de conexão do BigQuery |
|
||
roles/ |
Editor de dados do BigQuery |
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados. |
|
Tabela ou visualização |
roles/ |
Proprietário de dados do BigQuery |
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados. |
|
Tabela ou visualização |
roles/ |
Visualizador de dados do BigQuery |
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel também enumera todos os conjuntos de dados no projeto. No entanto, são necessários papéis extras para permitir a execução de jobs. |
|
Tabela ou visualização |
roles/ |
Usuário de jobs do BigQuery | Concede permissões para executar jobs, incluindo consultas, no projeto. |
|
Projeto |
roles/ |
Visualizador de metadados do BigQuery |
Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:
Esse papel não pode ser aplicado a modelos ou rotinas individuais. Quando aplicado a um conjunto de dados, esse papel fornece permissões para:
Quando aplicado no nível do projeto ou da organização, esse papel fornece permissões para:
São necessários papéis extras para permitir a execução de jobs. |
|
Tabela ou visualização |
roles/ |
Usuário de sessão de leitura do BigQuery | Acesso para criar e usar sessões de leitura |
|
|
roles/ |
Administrador de recursos do BigQuery | Administra todos os recursos do BigQuery. |
|
|
roles/ |
Editor de recursos do BigQuery | Gerencia todos os recursos do BigQuery, mas não pode tomar decisões de compra. |
|
|
roles/ |
Visualizador de recursos do BigQuery | Visualiza todos os recursos do BigQuery, mas não pode editar ou tomar decisões de compra. |
|
|
roles/ |
Usuário do BigQuery |
Quando aplicado a um conjunto de dados, esse papel fornece a capacidade de ler os metadados do conjunto de dados e listar as tabelas no conjunto de dados. Quando aplicado a um projeto, esse papel também dá a capacidade de executar jobs, incluindo consultas, dentro do projeto. Um membro com esse papel consegue enumerar e cancelar os próprios jobs, bem como enumerar conjuntos de dados em um projeto. Além disso, permite a criação de novos conjuntos de dados no projeto. O criador recebe o papel de proprietário de dados do BigQuery ( |
|
Conjunto de dados |
Papéis básicos do BigQuery
Para informações sobre os papéis básicos do BigQuery, consulte Papéis básicos e permissões do BigQuery.
Papéis personalizados do BigQuery
Para criar um papel personalizado do IAM para o BigQuery, siga as etapas descritas na documentação de papéis personalizados do IAM.
A seguir
- Consulte os exemplos de controle de acesso do BigQuery.
- Para informações sobre os papéis básicos do BigQuery, consulte Papéis básicos e permissões do BigQuery.
- Para mais informações sobre como atribuir papéis no nível do conjunto de dados, consulte Como controlar o acesso a conjuntos de dados.
- Para mais informações sobre como atribuir papéis no nível de tabela ou visualização, consulte Como controlar o acesso a tabelas e visualizações.