Panoramica delle viste autorizzate

Le viste autorizzate sono viste logiche delle tabelle che offrono un controllo dell'accesso granulare ai dati di Bigtable. Una vista autorizzata è un sottoinsieme di una tabella che configuri per includere dati specifici della tabella. Poi concedi l'accesso alla vista autorizzata separatamente dall'accesso alla tabella.

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

Questo documento descrive le visualizzazioni autorizzate e fornisce esempi di file di definizione. Prima di leggere questo documento, dovresti acquisire familiarità con il modello di archiviazione Bigtable. Per le istruzioni, consulta Creare e gestire le viste autorizzate.

Cosa definisce una vista autorizzata

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

  • Prefisso della 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 viene utilizzato lo stesso qualificatore di colonna in più famiglie di colonne e vuoi includere tutte le colonne con quel qualificatore nella vista, devi specificare separatamente ogni combinazione del qualificatore di colonna e della famiglia di colonne quando definisci la vista.

I valori della chiave di riga e del qualificatore di colonna che utilizzi per definire una vista autorizzata vengono trattati come dati di servizio. Per questo motivo, non creare una vista autorizzata utilizzando valori di chiave di riga o qualificatore di colonna che contengono informazioni sensibili. Per informazioni sul modo in cui vengono gestiti i dati dei servizi, consulta l'Informativa sulla privacy di Google Cloud.

Inclusione di colonne in una famiglia o in tutte le righe

Per assicurarti che ogni colonna aggiunta a una famiglia di colonne nella tabella sottostante 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 elemento nel sottoinsieme della famiglia: "qualifierPrefixes": [""].

Allo stesso modo, 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, questo valore è scritto come "rowPrefixes": [""] nel sottoinsieme delle viste.

Esempi di file di definizione

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

Di seguito è riportato un esempio di file di definizione per una vista autorizzata che include tutte le righe con 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 nella 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 nella famiglia di colonne order nelle righe con prefisso della chiave di riga examplepetstore1#.

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

Passaggi successivi