Permissões e papéis predefinidos

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 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.
  • Papéis básicos incluem os papéis de proprietário, editor e leitor.

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:

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 Cria um compromisso de capacidade no projeto.
bigquery.capacityCommitments.delete Exclui um compromisso de capacidade.
bigquery.capacityCommitments.get Recupera detalhes sobre um compromisso de capacidade.
bigquery.capacityCommitments.list Lista todos os compromissos de capacidade em um projeto.
bigquery.capacityCommitments.update 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.updateTag

Atualiza tags para uma conexão.

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.delete Exclui metadados de um job.
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 Storage Read API.
bigquery.readsessions.update Atualiza uma sessão de leitura por meio da Storage Read API.
bigquery.reservations.create Cria uma reserva em um projeto.
bigquery.reservations.delete Exclui uma reserva.
bigquery.reservations.get Recupera detalhes sobre uma reserva.
bigquery.reservations.list Lista todas as reservas em um projeto.
bigquery.reservations.update Atualiza as propriedades de uma reserva.
bigquery.reservationAssignments.create

Cria uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência.
Para mover uma atribuição de reserva, é necessário bigquery.reservationAssignments.create no projeto do novo proprietário e no recurso de transferência.

bigquery.reservationAssignments.delete

Exclui uma atribuição de reserva. Essa permissão é obrigatória no projeto do proprietário e no recurso de transferência.
Para mover uma atribuição de reserva, é necessário bigquery.reservationAssignments.delete no projeto do antigo proprietário e no recurso de transferência.

bigquery.reservationAssignments.list Lista todas as atribuições de reserva em um projeto.
bigquery.reservationAssignments.search Pesquisa uma atribuição de reserva para um determinado projeto, pasta ou organização.
bigquery.rowAccessPolicies.create Cria uma nova política de acesso no nível da linha em uma tabela.
bigquery.rowAccessPolicies.delete Exclui uma política de acesso no nível da linha de uma tabela.
bigquery.rowAccessPolicies.getFilteredData Recebe dados em uma tabela que você quer que fiquem visíveis apenas para os principais da lista de beneficiários de uma política de acesso no nível da linha. Recomendamos que esta permissão seja concedida apenas em um recurso de política de acesso no nível da linha.
bigquery.rowAccessPolicies.list Lista todas as políticas de acesso no nível da linha em uma tabela.
bigquery.rowAccessPolicies.getIamPolicy Recebe as permissões do IAM de uma política de acesso da linha.
bigquery.rowAccessPolicies.setIamPolicy Define as permissões de IAM da política de acesso da linha.
bigquery.rowAccessPolicies.update Recria uma política de acesso no nível da linha.
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.routines.updateTag

Atualiza as tags de uma 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.createSnapshot (Visualização) Cria novos snapshots da tabela.
bigquery.tables.delete Exclui tabelas.
bigquery.tables.deleteSnapshot (Visualização) Exclui snapshots da tabela.
bigquery.tables.export Exporta dados de tabela do BigQuery.
bigquery.tables.get Recebe metadados de tabela.
Para ver os dados da tabela, você precisabigquery.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.restoreSnapshot (Visualização) Restaura snapshots da tabela.
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.
Para fazer isso, você precisa de bigquery.tables.updateData.

bigquery.tables.updateData

Atualiza os dados da tabela.
Para atualizar os metadados da tabela, você precisa bigquery.tables.update.

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 Permissões

Administrador do BigQuery
(roles/bigquery.admin)

Concede permissões para gerenciar todos os recursos no projeto. Pode gerenciar todos os dados no projeto e cancelar jobs de outros usuários que estejam sendo executados.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.config.*
  • bigquery.connections.*
  • bigquery.datasets.*
  • bigquery.jobs.*
  • bigquery.models.*
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • bigquery.routines.*
  • bigquery.rowAccessPolicies.create
  • bigquery.rowAccessPolicies.delete
  • bigquery.rowAccessPolicies.getIamPolicy
  • bigquery.rowAccessPolicies.list
  • bigquery.rowAccessPolicies.setIamPolicy
  • bigquery.rowAccessPolicies.update
  • bigquery.savedqueries.*
  • bigquery.tables.*
  • bigquery.transfers.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Administrador de conexão do BigQuery
(roles/bigquery.connectionAdmin)

  • bigquery.connections.*

Usuário de conexão do BigQuery
(roles/bigquery.connectionUser)

  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use

Editor de dados do BigQuery
(roles/bigquery.dataEditor)

Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:

  • ler e atualizar dados e metadados da tabela ou visualização;
  • excluir a tabela ou a visualização.

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:

  • ler os metadados do conjunto de dados e listar as tabelas no conjunto de dados;
  • criar, atualizar, receber e excluir as tabelas do conjunto de dados.

Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Tabela
  • Ver
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.createSnapshot
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • bigquery.tables.restoreSnapshot
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Proprietário de dados do BigQuery
(roles/bigquery.dataOwner)

Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:

  • ler e atualizar dados e metadados da tabela ou visualização;
  • compartilhar a tabela ou a visualização;
  • excluir a tabela ou a visualização.

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:

  • ler, atualizar e excluir o conjunto de dados;
  • criar, atualizar, receber e excluir as tabelas do conjunto de dados.

Quando aplicado no nível do projeto ou da organização, esse papel também cria novos conjuntos de dados.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Tabela
  • Ver
  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.rowAccessPolicies.create
  • bigquery.rowAccessPolicies.delete
  • bigquery.rowAccessPolicies.getIamPolicy
  • bigquery.rowAccessPolicies.list
  • bigquery.rowAccessPolicies.setIamPolicy
  • bigquery.rowAccessPolicies.update
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Visualizador de dados do BigQuery
(roles/bigquery.dataViewer)

Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:

  • ler dados e metadados da tabela ou visualização.

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:

  • ler os metadados do conjunto de dados e listar as tabelas no conjunto de dados;
  • ler dados e metadados das tabelas do conjunto de dados.

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.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Tabela
  • Ver
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.export
  • bigquery.models.getData
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.createSnapshot
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Visualizador de dados filtrados do BigQuery
(roles/bigquery.filteredDataViewer)

Acesso de visualização de dados de tabelas filtrados definido por uma política de acesso de linha

  • bigquery.rowAccessPolicies.getFilteredData

Usuário de jobs do BigQuery
(roles/bigquery.jobUser)

Concede permissões para executar jobs, incluindo consultas, no projeto.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Leitor de metadados do BigQuery
(roles/bigquery.metadataViewer)

Quando aplicado a uma tabela ou visualização, esse papel fornece permissões para:

  • ler metadados da tabela ou visualização.

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:

  • listar tabelas e visualizações no conjunto de dados;
  • ler metadados das tabelas e visualizações do conjunto de dados.

Quando aplicado no nível do projeto ou da organização, esse papel fornece permissões para:

  • listar todos os conjuntos de dados e ler metadados para todos os conjuntos de dados no projeto;
  • listar todas as tabelas e visualizações e ler metadados para todas as tabelas e visualizações no projeto.

São necessários papéis extras para permitir a execução de jobs.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Tabela
  • Ver
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.get
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Usuário de sessão de leitura do BigQuery
(roles/bigquery.readSessionUser)

Acesso para criar e usar sessões de leitura

  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Administrador de recursos do BigQuery
(roles/bigquery.resourceAdmin)

Administra todos os recursos do BigQuery.

  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • recommender.bigqueryCapacityCommitmentsInsights.*
  • recommender.bigqueryCapacityCommitmentsRecommendations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Editor de recursos do BigQuery
(roles/bigquery.resourceEditor)

Gerencia todos os recursos do BigQuery, mas não pode tomar decisões de compra.

  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Visualizador de recursos do BigQuery
(roles/bigquery.resourceViewer)

Visualiza todos os recursos do BigQuery, mas não pode editar ou tomar decisões de compra.

  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Usuário do BigQuery
(roles/bigquery.user)

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 participante 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 (roles/bigquery.dataOwner) nesses novos conjuntos de dados.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Conjunto de dados
  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.config.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.jobs.list
  • bigquery.models.list
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • bigquery.routines.list
  • bigquery.savedqueries.get
  • bigquery.savedqueries.list
  • bigquery.tables.list
  • bigquery.transfers.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list

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