Panoramica delle viste autorizzate

Le viste autorizzate sono viste logiche delle tabelle che ti offrono un controllo dell'accesso granulare ai dati Bigtable. Una vista autorizzata è un sottoinsieme di una tabella che puoi configurare in modo da includere dati specifici della tabella. Puoi quindi concedere l'accesso alla vista autorizzata separatamente da quello alla tabella.

Le viste autorizzate sono utili per le tabelle multi-tenant o altre situazioni in cui la tabella contiene dati a cui non tutti gli utenti devono poter accedere. A differenza delle viste in altri servizi di database, le viste autorizzate di Bigtable possono essere utilizzate per controllare l'accesso in lettura e scrittura. Puoi creare migliaia di visualizzazioni autorizzate in modo programmatico, nello stesso modo in cui puoi farlo con altri sistemi di archiviazione che chiamano "visualizzazioni aggiornabili" o "alias filtrati".

Questo documento descrive le visualizzazioni autorizzate e fornisce esempi di file di definizione. Prima di leggere questo documento, devi conoscere il modello di archiviazione Bigtable. Per le istruzioni, consulta Creare e gestire le visualizzazioni autorizzate.

Che cos'è una vista autorizzata

Quando crei una vista autorizzata, la definisci specificando i dati da includere utilizzando uno dei seguenti parametri:

  • Prefisso chiave di riga, ad esempio tutte le righe che iniziano con examplepetstore1|
  • Prefisso del qualificatore di colonna, ad esempio tutte le colonne i cui qualificatori iniziano con order# nella famiglia di colonne specificata
  • Qualificatore di colonna, ad esempio solo la colonna order-examplepetstore nella famiglia di colonne specificata
  • Una combinazione di prefisso della chiave di riga e qualificatore di colonna

Se lo stesso qualificatore di colonna viene utilizzato in più famiglie di colonne e vuoi includere tutte le colonne con quel qualificatore nella visualizzazione, devi specificare ogni combinazione di qualificatore di colonna e famiglia di colonne separatamente quando definisci la visualizzazione.

I valori della chiave di riga e del qualificatore di colonna utilizzati per definire una vista autorizzata vengono trattati come dati di servizio. Per questo motivo, non creare una vista autorizzata utilizzando valori della chiave di riga o del qualificatore di colonna che contengono informazioni sensibili. Per informazioni su come vengono gestiti i dati del servizio, consulta l'Google Cloud informativa sulla privacy.

Inclusione di colonne in una famiglia o in tutte le righe

Se vuoi assicurarti che qualsiasi colonna aggiunta a una famiglia di colonne nella tabella di base sia inclusa anche nella vista autorizzata, devi specificare la stringa vuota ("") come prefisso del qualificatore di colonna. Ad esempio, un file di definizione includerebbe questo nel sottoinsieme di famiglie:"qualifierPrefixes": [""].

Analogamente, se vuoi definire una vista autorizzata che includa tutte le righe della tabella, specifica la stringa vuota ("") come prefisso della chiave di riga. In un file di definizione, viene scritto come "rowPrefixes": [""] nel sottoinsieme di visualizzazioni.

Per evitare viste autorizzate eccessivamente complesse, Bigtable consente di specificare al massimo 10 prefissi di qualificatori distinti. Ciò significa che una vista autorizzata può specificare una famiglia di colonne con 10 prefissi di qualificatore, 10 famiglie di colonne con un singolo prefisso di qualificatore o qualsiasi valore intermedio, purché il numero totale di qualificatori non superi 10.

Come best practice, specifica una chiave una sola volta per oggetto JSON. Se specifichi una chiave, ad esempio il nome di una famiglia di colonne, più di una volta, la voce finale per la chiave sovrascrive le voci precedenti per la chiave.

Esempi di file di definizione

Questa sezione presenta esempi di file di definizione delle visualizzazioni autorizzate in formato JSON.

Di seguito è riportato un esempio di file di definizione per una vista autorizzata che include tutte le righe con un prefisso della chiave di riga examplepetstore1#.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplestore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

Di seguito è riportato un esempio di file di definizione per una vista autorizzata che include la colonna skus nella famiglia di colonne order e tutte le colonne della famiglia di colonne customer.

    {
      "subsetView": {
      "familySubsets": {
        "order": {
          "qualifiers": ["skus"]
        }
      }
        "familySubsets": {
          "key": "customer"
          "qualifierPrefixes": [""]
        }
      }
    }

Di seguito è riportato un esempio di file di definizione per una vista autorizzata che include solo i dati della colonna skus della famiglia di colonne order nelle righe con un prefisso della chiave di riga examplepetstore1#.

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

Di seguito è riportato un esempio di file di definizione per una vista autorizzata che include solo i dati nelle colonne skus e agents della famiglia di colonne order e le colonne dog, cat e bird della famiglia di colonne pet_id.

    {
      "subsetView": {
        "rowPrefixes": ["examplepetstore1#"]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

Passaggi successivi