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 que você configura para incluir dados de tabela específicos. Em seguida, você concede acesso à visualização autorizada separadamente do acesso à tabela.

As visualizações autorizadas são úteis em tabelas com vários locatá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 o acesso de leitura e gravação. É possível criar milhares de visualizações autorizadas programaticamente, da mesma forma que é possível fazer com outros sistemas de armazenamento chamam de "visualizações atualizáveis" ou "aliases filtrados".

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 mais instruções, consulte Criar e gerenciar visualizações autorizadas.

O que define uma visualização autorizada

Quando você cria uma visualização autorizada, você a define especificando os dados que serão incluídos na visualização autorizada 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 com qualificadores que 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 de 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 de chave de linha e qualificador de coluna que você usa 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 chave de linha ou qualificador de coluna que contenham informações confidenciais. Para informações sobre como os dados de serviço são processados, consulte o Aviso de privacidade do Google Cloud.

Como incluir colunas em um grupo ou em todas as linhas

Para garantir que qualquer coluna adicionada a um grupo de colunas na tabela subjacente também seja incluída na sua visualização autorizada, especifique a string vazia ("") como um prefixo de qualificador de coluna. Por exemplo, um arquivo de definição incluiria isto no subconjunto da 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.

Exemplos de arquivo de definição

Esta seção apresenta exemplos em formato JSON de arquivos de definição de visualização autorizadas.

Veja 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
    }

Veja a seguir um exemplo de arquivo de definição para 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": [""]
  }
}

Veja a seguir um exemplo de arquivo de definição para uma visualização autorizada que inclui apenas os dados da coluna skus no grupo de colunas order, em linhas que têm o prefixo de chave de linha examplepetstore1#.

"subsetView": {
  "rowPrefixes": ["examplepetstore1#"]
  "familySubsets": {
    "order": {
      "qualifiers": ["skus"]
    }
  }
}

A seguir