Vistas autorizadas
Este documento descreve como criar vistas autorizadas e vistas materializadas autorizadas no BigQuery.
Vista geral
Como administrador de dados, pode criar uma vista autorizada para partilhar um subconjunto de dados num conjunto de dados com utilizadores e grupos específicos (diretores). Os principais podem ver os dados que partilha e executar consultas sobre eles, mas não podem aceder diretamente ao conjunto de dados de origem.
Tipos de visualização
Uma vista lógica é o tipo de vista predefinido para o BigQuery e uma vista materializada é uma vista pré-calculada que armazena periodicamente em cache os resultados de uma consulta para aumentar o desempenho e a eficiência.
Uma vista autorizada para uma vista lógica é denominada vista autorizada, mas uma vista autorizada para uma vista materializada é denominada vista materializada autorizada.
Se uma vista lógica depender de uma consulta grande ou computacionalmente dispendiosa, pode criar uma vista materializada. No entanto, consultar apenas um subconjunto dos seus dados ou usar outras técnicas pode, muitas vezes, melhorar o desempenho sem ter de criar uma vista materializada.
Para obter mais informações, consulte os seguintes recursos:
Passos de nível elevado para criar visualizações autorizadas
Para criar e partilhar uma vista, reveja estes passos gerais, que são os mesmos para vistas lógicas autorizadas e vistas materializadas autorizadas.
- Crie um conjunto de dados para conter os dados de origem.
- Executar uma consulta para carregar dados numa tabela de destino no conjunto de dados de origem.
- Crie um conjunto de dados para conter a sua vista autorizada.
- Crie uma vista autorizada a partir de uma consulta SQL que restrinja as colunas que os seus analistas de dados podem ver nos resultados da consulta.
- Conceda aos seus analistas de dados autorização para executar tarefas de consulta.
- Conceda aos seus analistas de dados acesso ao conjunto de dados que contém a vista autorizada.
- Conceda ao utilizador autorizado acesso à visualização do conjunto de dados de origem.
Alternativas
Embora as visualizações autorizadas sejam flexíveis e escaláveis, um dos seguintes métodos pode aplicar-se melhor ao seu exemplo de utilização:
- Defina políticas ao nível da linha numa tabela.
- Defina políticas ao nível da coluna numa tabela.
- Armazenar dados numa tabela separada.
- Partilhar todas as visualizações de propriedades num conjunto de dados (conjuntos de dados autorizados).
Use segurança ao nível da linha ou da coluna, ou tabelas separadas
Ao definir políticas de acesso ao nível da linha numa tabela ou criar uma tabela separada para conter dados confidenciais, um administrador de dados pode restringir a capacidade de um utilizador de ver esses dados. O armazenamento de dados numa tabela separada isola os dados e remove a capacidade de ver quantas linhas existem na tabela.
Além disso, ao criar e aplicar etiquetas de políticas, um administrador de dados pode restringir a capacidade do utilizador de ver colunas numa tabela.
O armazenamento de dados numa tabela separada é o método mais seguro, mas o menos flexível. A definição de políticas ao nível da linha é flexível e segura, enquanto a partilha de visualizações autorizadas é flexível e oferece o melhor desempenho.
Para comparar estes métodos detalhadamente, consulte os seguintes recursos:
- Comparação entre vistas autorizadas, segurança ao nível da linha e tabelas separadas
- Introdução à segurança ao nível da linha
- Exemplos de utilização da segurança ao nível da linha
- Introdução ao controlo de acesso ao nível da coluna
Partilhe todas as vistas num conjunto de dados
Se quiser conceder a um conjunto de visualizações de propriedades acesso a um conjunto de dados sem ter de autorizar cada visualização de propriedade individual, pode agrupar as visualizações de propriedades num conjunto de dados e, em seguida, conceder ao conjunto de dados que contém as visualizações de propriedades acesso ao conjunto de dados que contém os dados.
Em seguida, pode conceder aos principais acesso ao conjunto de dados que contém o grupo de vistas ou a vistas individuais no conjunto de dados, conforme necessário. Um conjunto de dados que tem acesso a outro conjunto de dados é denominado um conjunto de dados autorizado. O conjunto de dados que autoriza outro conjunto de dados a aceder aos respetivos dados é denominado conjunto de dados partilhado.
Para mais informações, consulte os artigos Conjuntos de dados autorizados e Autorize um conjunto de dados.
Limitações
- Quando cria uma vista autorizada ou uma vista materializada autorizada noutro conjunto de dados, o conjunto de dados de origem e o conjunto de dados da vista autorizada têm de estar na mesma localização regional.
- Quando elimina uma vista autorizada, pode demorar até 24 horas para remover a vista autorizada da lista de vistas. Durante este período, não pode aceder à vista autorizada, mas a vista autorizada eliminada pode aparecer na lista de vistas e conta para o limite de vistas autorizadas. Este limite pode impedir a criação de visualizações autorizadas adicionais se a nova visualização autorizada exceder esse limite.
Antes de começar
Conceda funções de gestão de identidades e acessos (IAM) que dão aos utilizadores as autorizações necessárias para consultar as vistas autorizadas ou as vistas materializadas autorizadas que partilha.
Funções necessárias
Para criar ou atualizar uma visualização autorizada, precisa de autorizações para o conjunto de dados que contém a visualização e para o conjunto de dados que fornece acesso à visualização.
Também tem de conceder aos utilizadores ou grupos acesso ao projeto e ao conjunto de dados que contêm a vista.
Autorizações de administrador no conjunto de dados que contém a vista
As vistas são tratadas como recursos de tabelas no BigQuery, pelo que a criação de uma vista requer as mesmas autorizações que a criação de uma tabela. Também tem de ter autorizações para consultar quaisquer tabelas referenciadas pela consulta SQL da vista.
Para criar uma visualização de propriedade, precisa da autorização da bigquery.tables.create
IAM
A roles/bigquery.dataEditor
função de IAM predefinida
inclui as autorizações de que precisa para criar uma visualização de propriedade.
Além disso, se tiver a autorização bigquery.datasets.create
, pode criar vistas nos conjuntos de dados que criar. Para criar uma vista para dados que não
são seus, tem de ter autorização bigquery.tables.getData
para essa tabela.
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Autorizações de administrador no segundo conjunto de dados que dá acesso à vista
Para atualizar as propriedades do conjunto de dados, precisa das seguintes autorizações de IAM:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(apenas necessário quando atualiza os controlos de acesso ao conjunto de dados na Google Cloud consola)
A função do IAM predefinida roles/bigquery.dataOwner
inclui as autorizações necessárias para atualizar as propriedades do conjunto de dados.
Além disso, se tiver a autorização bigquery.datasets.create
, pode
atualizar as propriedades dos conjuntos de dados que criar.
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Autorizações do utilizador no projeto e no conjunto de dados para a vista
Para partilhar uma vista autorizada com utilizadores ou grupos, tem de conceder aos utilizadores ou grupos as seguintes autorizações de IAM:
- A função de IAM
roles/bigquery.user
para o projeto que contém a vista autorizada. - A função de IAM
roles/bigquery.dataViewer
para o conjunto de dados que contém a vista autorizada.
Trabalhe com vistas autorizadas
As secções seguintes descrevem como trabalhar com vistas autorizadas e vistas materializadas autorizadas.
Crie uma vista autorizada
Para criar uma vista autorizada, escolha uma das seguintes opções. Para ver os passos completos para autorizar, partilhar e eliminar uma vista autorizada, consulte o tutorial Crie uma vista autorizada.
Consola
Aceda à página do BigQuery.
No editor de consultas, escreva a consulta na qual quer basear a vista autorizada.
Clique em Guardar > Guardar vista.
Na caixa de diálogo Guardar vista, faça o seguinte:
Para Projeto, escreva o projeto no qual quer guardar a vista.
Para Conjunto de dados, escreva o conjunto de dados no qual quer guardar a vista. Este tem de ser um conjunto de dados diferente do conjunto de dados usado na consulta de origem.
Em Tabela, escreva o nome da vista.
Clique em Guardar.
Conceda as autorizações necessárias aos utilizadores que podem usar a vista autorizada.
No painel Explorador, selecione o conjunto de dados usado na consulta de origem.
No painel Detalhes, clique em Partilha > Autorizar visualizações.
No painel Vistas autorizadas, para Vista autorizada, escreva o nome totalmente qualificado da vista no formato PROJECT_ID.DATASET_ID.VIEW_NAME.
Clique em Adicionar autorização.
Terraform
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
Faça a gestão de utilizadores ou grupos para visualizações autorizadas
Depois de autorizar uma vista, pode manter o acesso à mesma concluindo as seguintes tarefas para um conjunto de dados, uma tabela ou uma vista:
- Veja a política de acesso.
- Conceder acesso.
- Revogue o acesso.
- Negue o acesso.
Para mais informações, consulte o artigo Controle o acesso aos recursos através da IAM.
Remova a autorização de uma vista
Para remover a autorização de uma vista, selecione uma das seguintes opções:
Consola
Aceda à página do BigQuery na Google Cloud consola.
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Clique em > Autorizar visualizações.
PartilhaClique em
para remover a autorização.Clique em Fechar.
bq
Para remover a autorização de uma vista, use o comando bq rm
. Introduza o table_id
da vista à qual quer remover a autorização.
bq rm \ project_id:dataset:table_id
API
Chame o método tables.delete
e use as propriedades projectID
, datasetID
e tableID
para remover a visualização autorizada do seu conjunto de dados. Para mais informações, consulte o artigo
Tabelas.
Quotas e limites
- As vistas autorizadas estão sujeitas a limites do conjunto de dados. Para mais informações, consulte o artigo Limites do conjunto de dados.
- Se remover uma vista autorizada, pode demorar até 24 horas para que todas as referências à vista sejam removidas do sistema. Para evitar erros, aguarde 24 horas antes de reutilizar o nome de uma vista removida ou crie um nome único para a sua vista.
Tópicos avançados
As secções seguintes descrevem métodos avançados de utilização de visualizações autorizadas.
Combine a segurança ao nível da linha com as vistas autorizadas
Os dados apresentados numa vista lógica ou numa vista materializada são filtrados de acordo com as políticas de acesso ao nível da linha da tabela de origem subjacente.
Para ver detalhes sobre a forma como a segurança ao nível da linha interage com as vistas materializadas, consulte o artigo Use a segurança ao nível da linha com outras funcionalidades do BigQuery.
Combine a segurança ao nível da coluna com as vistas autorizadas
O impacto da segurança ao nível da coluna nas vistas é independente do facto de a vista ser ou não uma vista autorizada.
Para uma descrição detalhada de como as autorizações são aplicadas, consulte o artigo Vistas de consulta para segurança ao nível da coluna.
Use a partilha do BigQuery com vistas autorizadas
A partilha do BigQuery (anteriormente Analytics Hub) é uma plataforma de troca de dados com as seguintes capacidades:
- Permite-lhe partilhar dados e estatísticas em grande escala entre limites organizacionais.
- Utiliza uma estrutura de segurança e privacidade robusta.
- Suporta a publicação de um conjunto de dados do BigQuery, denominado conjunto de dados partilhado, e as respetivas vistas autorizadas e conjuntos de dados autorizados, para um conjunto de subscritores.
Um conjunto de dados associado é um conjunto de dados do BigQuery só de leitura que funciona como um ponteiro ou uma referência a um conjunto de dados partilhado. A subscrição de uma ficha de partilha cria um conjunto de dados associado no seu projeto, mas não uma cópia do conjunto de dados. Assim, os subscritores podem ler os dados, mas não podem adicionar nem atualizar objetos no mesmo.
As vistas materializadas que fazem referência a tabelas no conjunto de dados associado não são suportadas.
Para mais informações, consulte o artigo Introdução à partilha.
O que se segue?
- Para um tutorial sobre como criar uma vista autorizada, consulte o artigo Crie uma vista autorizada.
- Para criar uma vista lógica, consulte o artigo Crie vistas lógicas.
- Para criar uma vista materializada, que suporta outros tipos de controlo de acesso, consulte o artigo Criar vistas materializadas.
- Para obter metadados de visualizações, consulte o artigo Obter informações sobre visualizações.
- Para gerir as visualizações, consulte o artigo Faça a gestão das visualizações.