Vista geral das visualizações autorizadas
As vistas autorizadas das tabelas do Bigtable oferecem-lhe um controlo de acesso detalhado dos seus dados do Bigtable. Uma vista autorizada é um subconjunto de uma tabela que configura para incluir dados específicos da tabela. Em seguida, concede acesso à vista autorizada separadamente do acesso à tabela.
As vistas autorizadas são úteis para tabelas multi-inquilinos ou outras situações em que a sua tabela contém dados aos quais nem todos os utilizadores devem ter acesso. Ao contrário das vistas noutros serviços de base de dados, as vistas autorizadas do Bigtable podem ser usadas para controlar o acesso de leitura e escrita. Pode criar milhares de vistas autorizadas de forma programática, da mesma forma que pode fazê-lo com o que outros sistemas de armazenamento chamam de "vistas atualizáveis" ou "alias filtrados".
Este documento descreve as visualizações autorizadas e fornece exemplos de ficheiros de definições. Antes de ler este documento, deve conhecer o modelo de armazenamento do Bigtable. Para ver instruções, consulte o artigo Crie e faça a gestão de visualizações autorizadas.
O que define uma visualização autorizada
Quando cria uma vista autorizada, define-a especificando os dados a incluir na vista autorizada através de um dos seguintes parâmetros:
- Prefixo da chave da linha, por exemplo, todas as linhas que começam por
examplepetstore1|
- Prefixo do qualificador de coluna, por exemplo, todas as colunas cujos qualificadores começam com
order#
na família de colunas especificada - Qualificador da coluna, por exemplo, apenas a coluna
order-examplepetstore
na família de colunas especificada - Uma combinação do prefixo da chave da linha e do qualificador da coluna
Se o mesmo qualificador de coluna for usado em várias famílias de colunas e quiser incluir todas as colunas com esse qualificador na vista, tem de especificar todas as combinações de qualificador de coluna e família de colunas separadamente quando define a vista.
Os valores da chave da linha e do qualificador da coluna que usa para definir uma vista autorizada são tratados como dados de serviço. Por este motivo, não crie uma vista autorizada com valores de chave de linha ou qualificador de coluna que contenham informações confidenciais. Para obter informações sobre como os dados de serviço são processados, consulte o Google Cloud Aviso de Privacidade.
Inclusão de colunas numa família ou em todas as linhas
Se quiser certificar-se de que qualquer coluna adicionada a uma família de colunas na tabela subjacente também está incluída na sua vista autorizada, deve especificar a string vazia (""
) como um prefixo do qualificador de coluna. Por exemplo, um ficheiro de definição incluiria o seguinte no subconjunto da família: "qualifierPrefixes": [""]
.
Da mesma forma, se quiser definir uma vista autorizada que inclua todas as linhas na tabela, especifique a string vazia (""
) como um prefixo de chave de linha. Num ficheiro de definição, isto é escrito como "rowPrefixes": [""]
no subconjunto de visualização.
Para evitar vistas autorizadas excessivamente complexas, o Bigtable permite-lhe especificar, no máximo, 10 prefixos de qualificador distintos. Isto significa que uma vista autorizada pode especificar uma família de colunas com 10 prefixos de qualificadores, 10 famílias de colunas com um único prefixo de qualificador ou qualquer valor intermédio, desde que o número total de qualificadores seja, no máximo, 10.
Como prática recomendada, especifique uma chave apenas uma vez por objeto JSON. Se especificar uma chave, como um nome de família de colunas, mais do que uma vez, a entrada final da chave substitui todas as entradas anteriores da chave.
Exemplos de ficheiros de definição
Esta secção apresenta exemplos em formato JSON de ficheiros de definição de visualização autorizada.
Segue-se um exemplo de um ficheiro de definição para uma vista autorizada
que inclui a coluna address
da família de colunas customer
e colunas
que começam por tel
para linhas com um prefixo de chave de linha de examplepetstore1#
.
{
"subsetView":
{
"rowPrefixes": ["examplepetstore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
Segue-se um exemplo de um ficheiro de definição para uma visualização autorizada
que inclui a coluna skus
na família de colunas order
e todas as colunas na
família de colunas customer
.
{
"subsetView": {
"rowPrefixes": [""],
"familySubsets": {
"order": {
"qualifiers": ["skus"]
},
"customer": {
"qualifierPrefixes": [""]
}
}
}
}
Segue-se um exemplo de um ficheiro de definição para uma vista autorizada que inclui apenas dados na coluna skus
na família de colunas order
em linhas que têm um prefixo de chave de linha de examplepetstore1#
.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
Segue-se um exemplo de um ficheiro de definição para uma vista autorizada
que inclui apenas dados nas colunas skus
e agents
na família de colunas order
e nas colunas dog
, cat
e bird
na família de colunas pet_id
.
{
"subsetView": {
"rowPrefixes": [""]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}