Visão geral das visualizações autorizadas
As visualizações autorizadas são visualizações lógicas de tabelas que oferecem controle de acesso refinado sobre os dados do Bigtable. Uma visualização autorizada é um subconjunto de uma tabela configurada para incluir dados específicos. Em seguida, conceda acesso à visualização autorizada separadamente do acesso à tabela.
As visualizações autorizadas são úteis para tabelas multiusuários ou outras situações em que a tabela contém dados que nem todos os usuários podem acessar. Ao contrário das visualizações em outros serviços de banco de dados, as visualizações autorizadas do Bigtable podem ser usadas para controlar acesso de leitura e gravação. É possível criar milhares de visualizações autorizadas de forma programática, da mesma forma que outros sistemas de armazenamento chamam de "visualizações atualizáveis" ou "filtradas de pseudônimos".
Este documento descreve visualizações autorizadas e fornece exemplos de arquivos de definição. Antes de ler este documento, familiarize-se com o modelo de armazenamento do Bigtable. Para instruções, consulte Criar e gerenciar visualizações autorizadas.
O que define uma visualização autorizada
Ao criar uma visualização autorizada, você a define especificando os dados a serem incluídos usando um dos seguintes parâmetros:
- Prefixo da chave de linha: por exemplo, todas as linhas que começam com
examplepetstore1|
- Prefixo do qualificador de coluna, por exemplo, todas as colunas cujos qualificadores
começam com
order#
no grupo de colunas especificado - qualificador de coluna, por exemplo, apenas a coluna
order-examplepetstore
no grupo de colunas especificado; - Uma combinação de prefixo da chave de linha e qualificador de coluna
Se o mesmo qualificador de coluna for usado em vários grupos de colunas e você quiser incluir todas as colunas com esse qualificador na visualização, especifique cada combinação de qualificador de coluna e grupo de colunas separadamente ao definir a visualização.
Os valores da chave de linha e do qualificador de coluna usados para definir uma visualização autorizada são tratados como dados de serviço. Por esse motivo, não crie uma visualização autorizada usando valores de qualificador de chave de linha ou coluna que tenham informações sensíveis. Para informações sobre como os dados de serviço são processados, consulte o Aviso de privacidade doGoogle Cloud .
Incluir colunas em um grupo ou em todas as linhas
Se você quiser garantir que qualquer coluna adicionada a um grupo de colunas na tabela
subjacente também seja incluída na visualização autorizada, especifique
a string vazia (""
) como um prefixo de qualificador de coluna. Por
exemplo, um arquivo de definição incluiria isso no subconjunto de família:
"qualifierPrefixes": [""]
.
Da mesma forma, se você quiser definir uma visualização autorizada que inclua todas as linhas na tabela, especifique a string vazia (""
) como um prefixo de chave de linha. Em um
arquivo de definição, isso é gravado como "rowPrefixes": [""]
no subconjunto de visualização.
Para evitar visualizações autorizadas excessivamente complexas, o Bigtable permite especificar no máximo 10 prefixos de qualificadores distintos. Isso significa que uma visualização autorizada pode especificar uma família de colunas com 10 prefixos de qualificador, 10 famílias de colunas com um único prefixo de qualificador ou qualquer valor entre esses extremos, desde que o número total de qualificadores seja de, no máximo, 10.
Como prática recomendada, especifique uma chave apenas uma vez por objeto JSON. Se você especificar uma chave, como o nome de um grupo de colunas, mais de uma vez, a entrada final da chave vai substituir todas as entradas anteriores.
Exemplos de arquivos de definição
Esta seção apresenta exemplos formatados em JSON de arquivos de definição de visualização autorizada.
Confira a seguir um exemplo de arquivo de definição para uma visualização autorizada que inclui todas as linhas com um prefixo de chave de linha de examplepetstore1#
.
{
"subsetView":
{
"rowPrefixes": ["examplestore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
Confira a seguir um exemplo de arquivo de definição de uma visualização autorizada que inclui a coluna skus
no grupo de colunas order
e todas as colunas no grupo de colunas customer
.
{
"subsetView": {
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
"familySubsets": {
"key": "customer"
"qualifierPrefixes": [""]
}
}
}
Confira abaixo um exemplo de arquivo de definição para uma visualização autorizada que inclui apenas dados na coluna skus
no grupo de colunas order
em linhas que têm um prefixo de chave de linha examplepetstore1#
.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
Confira a seguir um exemplo de arquivo de definição para uma visualização autorizada que inclui apenas dados nas colunas skus
e agents
no grupo de colunas order
e nas colunas dog
, cat
e bird
no grupo de colunas pet_id
.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}