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 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:

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 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:

  • tables
  • visualizações

Os papéis não podem ser aplicados a recursos individuais dos seguintes tipos:

  • routines
  • models

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 Reservado para uso futuro.
bigquery.datasets.setIamPolicy Reservado para uso futuro.
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 Obtém dados e metadados em qualquer job.*
bigquery.jobs.list Lista todos os jobs e recupera metadados de qualquer job enviado por outro usuário.* Em 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 outro usuário.*
bigquery.jobs.update Cancela qualquer job.*
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.
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 (Beta)

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 (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ê 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 Lê a política de 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 de 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.

* Para 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 a seguir lista os papéis predefinidos do 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/bigquery.admin 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.
  • bigquery.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/bigquery.connectionAdmin Administrador de conexão do BigQuery
  • bigquery.connections.*
roles/bigquery.connectionUser Usuário de conexão do BigQuery
  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use
roles/bigquery.dataEditor Editor de dados do BigQuery

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.

  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabela ou visualização
roles/bigquery.dataOwner Proprietário de dados do BigQuery

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.

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabela ou visualização
roles/bigquery.dataViewer Visualizador de dados do BigQuery

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.

  • 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.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabela ou visualização
roles/bigquery.jobUser Usuário de jobs do BigQuery Concede permissões para executar jobs, incluindo consultas, no projeto.
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/bigquery.metadataViewer Visualizador de metadados do BigQuery

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.

  • 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
Tabela ou visualização
roles/bigquery.readSessionUser Usuário de sessão de leitura do BigQuery Acesso para criar e usar sessões de leitura
  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceAdmin Administrador de recursos do BigQuery Administra todos os recursos do BigQuery.
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceEditor Editor de recursos do BigQuery 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
roles/bigquery.resourceViewer Visualizador de recursos do BigQuery 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
roles/bigquery.user 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 (roles/bigquery.dataOwner) nesses novos conjuntos 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
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