Visualizzazioni autorizzate
Questo documento descrive come creare viste autorizzate e viste materializzate autorizzate in BigQuery.
Panoramica
In qualità di amministratore dei dati, puoi creare una visualizzazione autorizzata per condividere un sottoinsieme di dati in un set di dati con utenti e gruppi specifici (principal). I principal possono visualizzare i dati che condividi ed eseguire query, ma non possono accedere direttamente al set di dati di origine.
Tipi di visualizzazione
Una vista logica è il tipo di vista predefinito per BigQuery, mentre una vista materializzata è una vista precalcolata che memorizza nella cache periodicamente i risultati di una query per migliorare le prestazioni e l'efficienza.
Una vista autorizzata per una vista logica è chiamata vista autorizzata, ma una vista autorizzata per una vista materializzata è chiamata vista materializzata autorizzata.
Se una vista logica si basa su una query di grandi dimensioni o costosa dal punto di vista computazionale, puoi creare una vista materializzata. Tuttavia, l'esecuzione di query solo su un sottoinsieme dei dati o l'utilizzo di altre tecniche può spesso migliorare le prestazioni senza la necessità di creare una vista materializzata.
Per maggiori informazioni, consulta le seguenti risorse:
Passaggi di alto livello per la creazione di viste autorizzate
Per creare e condividere una vista, esamina questi passaggi di alto livello, che sono gli stessi per le viste logiche autorizzate e le viste materializzate autorizzate.
- Crea un set di dati che contenga i dati di origine.
- Esegui una query per caricare i dati in una tabella di destinazione nel set di dati di origine.
- Crea un set di dati che contenga la vista autorizzata.
- Crea una vista autorizzata da una query SQL che limita le colonne che gli analisti dei dati possono visualizzare nei risultati della query.
- Concedi agli analisti dei dati l'autorizzazione a eseguire job di query.
- Concedi agli analisti dei dati l'accesso al set di dati che contiene la visualizzazione autorizzata.
- Concedi alla vista autorizzata l'accesso al set di dati di origine.
Alternative
Sebbene le visualizzazioni autorizzate siano flessibili e scalabili, uno dei seguenti metodi potrebbe essere più adatto al tuo caso d'uso:
- Imposta criteri a livello di riga in una tabella.
- Imposta i criteri a livello di colonna in una tabella.
- Archivia i dati in una tabella separata.
- Condividere tutte le visualizzazioni in un set di dati (set di dati autorizzati).
Utilizza la sicurezza a livello di riga o di colonna oppure tabelle separate
Impostando criteri di accesso a livello di riga su una tabella o creando una tabella separata per contenere dati sensibili, un amministratore dei dati può limitare la capacità di un utente di visualizzare questi dati. La memorizzazione dei dati in una tabella separata isola i dati e rimuove la possibilità di vedere quante righe esistono nella tabella.
Inoltre, creando e applicando tag di criteri, un amministratore dei dati può limitare la capacità dell'utente di visualizzare le colonne di una tabella.
L'archiviazione dei dati in una tabella separata è il metodo più sicuro, ma meno flessibile. L'impostazione di criteri a livello di riga è flessibile e sicura, mentre la condivisione di visualizzazioni autorizzate è flessibile e offre il miglior rendimento.
Per confrontare questi metodi nel dettaglio, consulta le seguenti risorse:
- Confronto tra viste autorizzate, sicurezza a livello di riga e tabelle separate
- Introduzione alla sicurezza a livello di riga
- Esempi di casi d'uso per la sicurezza a livello di riga
- Introduzione al controllo dell'accesso a livello di colonna
Condividere tutte le visualizzazioni in un set di dati
Se vuoi concedere a una raccolta di viste l'accesso a un set di dati senza dover autorizzare ogni singola vista, puoi raggruppare le viste in un set di dati e poi concedere al set di dati che contiene le viste l'accesso al set di dati che contiene i dati.
Puoi quindi concedere alle entità l'accesso al set di dati contenente il gruppo di viste o alle singole viste nel set di dati, in base alle esigenze. Un set di dati che ha accesso a un altro set di dati è chiamato set di dati autorizzato. Il set di dati che autorizza un altro set di dati ad accedere ai suoi dati è chiamato set di dati condiviso.
Per ulteriori informazioni, vedi Set di dati autorizzati e Autorizzare un set di dati.
Limitazioni
- Quando crei una vista autorizzata o una vista materializzata autorizzata in un altro set di dati, il set di dati di origine e il set di dati della vista autorizzata devono trovarsi nella stessa posizione regionale.
- Quando elimini una visualizzazione autorizzata, potrebbero essere necessarie fino a 24 ore prima che venga rimossa dall'elenco delle visualizzazioni. Durante questo periodo, non puoi accedere alla visualizzazione autorizzata, ma la visualizzazione autorizzata eliminata può essere visualizzata nell'elenco delle visualizzazioni e viene conteggiata ai fini del limite delle visualizzazioni autorizzate. Questo limite può impedire la creazione di ulteriori visualizzazioni autorizzate se la nuova visualizzazione autorizzata dovesse superarlo.
Prima di iniziare
Concedi ruoli IAM (Identity and Access Management) che forniscono agli utenti le autorizzazioni necessarie per eseguire query sulle viste autorizzate o sulle viste materializzate autorizzate che condividi.
Ruoli obbligatori
Per creare o aggiornare una visualizzazione autorizzata, devi disporre delle autorizzazioni per il set di dati che contiene la visualizzazione e per il set di dati che fornisce l'accesso alla visualizzazione.
Devi anche concedere agli utenti o ai gruppi l'accesso al progetto e al set di dati che contengono la visualizzazione.
Autorizzazioni di amministratore per il set di dati che contiene la visualizzazione
Le viste vengono trattate come risorse di tabelle in BigQuery, quindi la creazione di una vista richiede le stesse autorizzazioni della creazione di una tabella. Devi anche disporre delle autorizzazioni per eseguire query su tutte le tabelle a cui fa riferimento la query SQL della vista.
Per creare una vista, devi disporre dell'autorizzazione IAM bigquery.tables.create
. Il ruolo IAM predefinito roles/bigquery.dataEditor
include le autorizzazioni necessarie per creare una vista.
Inoltre, se disponi dell'autorizzazione bigquery.datasets.create
, puoi
creare viste nei set di dati che crei. Per creare una vista per i dati che non ti appartengono, devi disporre dell'autorizzazione bigquery.tables.getData
per quella tabella.
Per saperne di più su ruoli e autorizzazioni IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.
Autorizzazioni di amministratore sul secondo set di dati che concede l'accesso alla visualizzazione
Per aggiornare le proprietà del set di dati, devi disporre delle seguenti autorizzazioni IAM:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(obbligatorio solo quando aggiorni i controlli di accesso al set di dati nella console Trusted Cloud )
Il ruolo IAM predefinito roles/bigquery.dataOwner
include le autorizzazioni necessarie per aggiornare le proprietà del set di dati.
Inoltre, se disponi dell'autorizzazione bigquery.datasets.create
, puoi aggiornare le proprietà dei set di dati che crei.
Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Autorizzazioni utente per il progetto e il set di dati per la visualizzazione
Per condividere una vista autorizzata con utenti o gruppi, devi concedere agli utenti o ai gruppi le seguenti autorizzazioni IAM:
- Il ruolo IAM
roles/bigquery.user
per il progetto che contiene la vista autorizzata. - Il ruolo IAM
roles/bigquery.dataViewer
per il set di dati che contiene la vista autorizzata.
Utilizzare le viste autorizzate
Le sezioni seguenti descrivono come utilizzare le viste autorizzate e le viste materializzate autorizzate.
Creare una vista autorizzata
Per creare una vista autorizzata, scegli una delle seguenti opzioni. Per la procedura completa per autorizzare, condividere ed eliminare una vista autorizzata, consulta il tutorial Creare una vista autorizzata.
Console
Vai alla pagina BigQuery.
Nell'editor query, digita la query su cui vuoi basare la visualizzazione autorizzata.
Fai clic su Salva > Salva visualizzazione.
Nella finestra di dialogo Salva visualizzazione, procedi nel seguente modo:
In Progetto, digita il progetto in cui salvare la visualizzazione.
Per Set di dati, digita il set di dati in cui salvare la visualizzazione. Deve essere un set di dati diverso da quello utilizzato nella query di origine.
In Tabella, digita il nome della visualizzazione.
Fai clic su Salva.
Concedi le autorizzazioni necessarie agli utenti che possono utilizzare la visualizzazione autorizzata.
Nel riquadro Explorer, seleziona il set di dati utilizzato nella query di origine.
Nel riquadro Dettagli, fai clic su Condivisione > Autorizza visualizzazioni.
Nel riquadro Viste autorizzate, per Vista autorizzata, digita il nome completo della vista, nel formato PROJECT_ID.DATASET_ID.VIEW_NAME.
Fai clic su Aggiungi autorizzazione.
Terraform
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Per applicare la configurazione di Terraform in un progetto Trusted Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Trusted Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file viene denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).
- Apri il tuo Trusted Cloud progetto per visualizzare i risultati. Nella console Trusted Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Gestire utenti o gruppi per le visualizzazioni autorizzate
Dopo aver autorizzato una vista, puoi mantenere l'accesso completando le seguenti attività per un set di dati, una tabella o una vista:
- Visualizza la policy di accesso.
- Concedi l'accesso.
- Revoca l'accesso.
- Rifiuta l'accesso.
Per ulteriori informazioni, consulta Controllare l'accesso alle risorse utilizzando IAM.
Rimuovere l'autorizzazione a una visualizzazione
Per rimuovere l'autorizzazione a una vista, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery nella console Trusted Cloud .
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.
Fai clic su > Autorizza visualizzazioni.
CondivisioneFai clic su
per Rimuovere l'autorizzazione.Fai clic su Chiudi.
bq
Per rimuovere l'autorizzazione da una vista, utilizza il comando bq rm
. Inserisci
il table_id
per la visualizzazione da cui vuoi rimuovere l'autorizzazione.
bq rm \ project_id:dataset:table_id
API
Chiama il metodo tables.delete
e utilizza le proprietà projectID
,datasetID
e tableID
per rimuovere la visualizzazione autorizzata per il tuo set di dati. Per ulteriori informazioni, vedi
Tabelle.
Quote e limiti
- Le visualizzazioni autorizzate sono soggette ai limiti del set di dati. Per maggiori informazioni, consulta la pagina Limiti dei set di dati.
- Se rimuovi una visualizzazione autorizzata, potrebbero essere necessarie fino a 24 ore prima che tutti i riferimenti alla visualizzazione vengano rimossi dal sistema. Per evitare errori, attendi 24 ore prima di riutilizzare il nome di una vista rimossa o crea un nome univoco per la vista.
Argomenti avanzati
Le sezioni seguenti descrivono i metodi avanzati di utilizzo delle viste autorizzate.
Combinare la sicurezza a livello di riga con le viste autorizzate
I dati visualizzati in una vista logica o in una vista materializzata vengono filtrati in base ai criteri di accesso a livello di riga della tabella di origine sottostante.
Per informazioni dettagliate su come la sicurezza a livello di riga interagisce con le visualizzazioni materializzate, consulta Utilizzare la sicurezza a livello di riga con altre funzionalità BigQuery.
Combinare la sicurezza a livello di colonna con le viste autorizzate
L'impatto della sicurezza a livello di colonna sulle viste è indipendente dal fatto che la vista sia una vista autorizzata.
Per una descrizione dettagliata di come vengono applicate le autorizzazioni, vedi Visualizzazioni query per la sicurezza a livello di colonna.
Utilizzare la condivisione BigQuery con le viste autorizzate
BigQuery sharing (in precedenza Analytics Hub) è una piattaforma di scambio di dati con le seguenti funzionalità:
- Consente di condividere dati e approfondimenti su larga scala oltre i confini organizzativi.
- Utilizza un solido framework di sicurezza e privacy.
- Supporta la pubblicazione di un set di dati BigQuery, chiamato set di dati condiviso, e delle relative viste autorizzate e set di dati autorizzati, a un insieme di abbonati.
Un set di dati collegato è un set di dati BigQuery di sola lettura che funge da puntatore o riferimento a un set di dati condiviso. La sottoscrizione a un elenco di condivisione crea un set di dati collegato nel progetto, ma non una copia del set di dati, quindi gli abbonati possono leggere i dati, ma non possono aggiungere o aggiornare gli oggetti al suo interno.
Le viste materializzate che fanno riferimento a tabelle nel set di dati collegato non sono supportate.
Per ulteriori informazioni, consulta la sezione Introduzione alla condivisione.
Passaggi successivi
- Per un tutorial sulla creazione di una vista autorizzata, consulta Creare una vista autorizzata.
- Per creare una visualizzazione logica, vedi Creare visualizzazioni logiche.
- Per creare una vista materializzata, che supporta altri tipi di controllo dell'accesso#39;accesso, consulta Creare viste materializzate.
- Per ottenere i metadati della vista, consulta Recupero delle informazioni sulle viste.
- Per gestire le visualizzazioni, vedi Gestire le visualizzazioni.