Panoramica delle viste autorizzate
Le viste autorizzate delle tabelle Bigtable ti offrono 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 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 sia in lettura che in scrittura. Puoi creare migliaia di viste autorizzate in modo programmatico, nello stesso modo in cui puoi farlo con quelle che altri sistemi di archiviazione chiamano "viste aggiornabili" o "alias filtrati".
Questo documento descrive le viste autorizzate e fornisce esempi di file di definizione. Prima di leggere questo documento, dovresti avere familiarità con il modello di archiviazione Bigtable. Per le istruzioni, vedi Creare e gestire le viste autorizzate.
Che cos'è una vista autorizzata
Quando crei una vista autorizzata, la definisci specificando i dati da includere nella vista autorizzata utilizzando uno dei seguenti parametri:
- Prefisso chiave di riga, ad esempio tutte le righe che iniziano con
examplepetstore1|
- Prefisso 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 separatamente ogni combinazione di qualificatore di colonna e famiglia di colonne quando definisci la visualizzazione.
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 dichiave di rigaa oqualificatore di colonnaa 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 di tutte le righe
Se vuoi assicurarti che qualsiasi colonna aggiunta a una famiglia di colonne nella
tabella sottostante sia inclusa anche nella visualizzazione autorizzata, devi
specificare la stringa vuota (""
) come prefisso del qualificatore di colonna. Ad esempio, un file di definizione includerebbe quanto segue 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, questo viene scritto come "rowPrefixes": [""]
nel sottoinsieme della visualizzazione.
Per evitare viste autorizzate eccessivamente complesse, Bigtable ti consente di specificare al massimo 10 prefissi qualificatori distinti. Ciò significa che una vista autorizzata può specificare una famiglia di colonne con 10 prefissi di qualificatori, 10 famiglie di colonne con un singolo prefisso di qualificatore o qualsiasi valore intermedio, purché il numero totale di qualificatori sia al massimo 10.
Come best practice, specifica una chiave una sola volta per oggetto JSON. Se specifichi una chiave, ad esempio un nome di famiglia di colonne, più di una volta, l'ultima voce per la chiave sovrascrive le voci precedenti.
Esempi di file di definizione
Questa sezione presenta esempi in formato JSON di file di definizione delle viste autorizzate.
Di seguito è riportato un esempio di file di definizione per una vista autorizzata
che include la colonna address
della famiglia di colonne customer
e le colonne
che iniziano con tel
per le righe con un prefisso della chiave di riga examplepetstore1#
.
{
"subsetView":
{
"rowPrefixes": ["examplepetstore1#"],
"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": {
"rowPrefixes": [""],
"familySubsets": {
"order": {
"qualifiers": ["skus"]
},
"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 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
nella famiglia di colonne order
e nelle colonne dog
, cat
e bird
nella famiglia di colonne pet_id
.
{
"subsetView": {
"rowPrefixes": [""]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}