Visualizzazioni autorizzate
Questo documento descrive come creare visualizzazioni autorizzate e viste materializzate autorizzate in BigQuery. In qualità di amministratore dei dati, puoi creare una vista autorizzata per condividere un sottoinsieme di dati in un set di dati con utenti e gruppi (entità) specifici. Le entità possono visualizzare i dati che condividi ed eseguire query su di essi, ma non possono accedere direttamente al set di dati di origine.
Tipi di visualizzazione
Una visualizzazione logica è il tipo di visualizzazione predefinito per BigQuery, mentre una vista materializzata è una visualizzazione precalcolata che memorizza nella cache i risultati di una query periodicamente per migliorare le prestazioni e l'efficienza.
Una visualizzazione autorizzata per una visualizzazione logica è chiamata visualizzazione autorizzata, ma una visualizzazione autorizzata per una vista materializzata è chiamata vista materializzata autorizzata.
Se una visualizzazione logica si basa su una query di grandi dimensioni o costosa dal punto di vista computazionale, puoi creare una vista materializzata invece. Per comprendere i casi d'uso della visualizzazione logica e della vista materializzata, consulta Panoramica delle visualizzazioni logiche e delle viste materializzate.
Passaggi di alto livello per la creazione di visualizzazioni autorizzate
Per creare e condividere una visualizzazione, esamina questi passaggi di alto livello, che sono gli stessi per le visualizzazioni 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 limiti le colonne che gli analisti di dati possono visualizzare nei risultati della query.
- Concedi agli analisti di dati l'autorizzazione a eseguire job di query.
- Concedi agli analisti di dati l'accesso al set di dati che contiene la visualizzazione autorizzata.
- Concedi l'accesso in visualizzazione alla vista autorizzata 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 i criteri a livello di riga su una tabella.
- Imposta i criteri a livello di colonna su una tabella.
- Archivia i dati in una tabella separata.
- Condividi 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 i criteri di accesso a livello di riga su una tabella o creando una tabella separata per contenere i dati sensibili, un amministratore dei dati può limitare la capacità di un utente di visualizzare questi dati. L'archiviazione 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 policy, un amministratore dei dati può limitare la capacità dell'utente di visualizzare le colonne in una tabella.
L'archiviazione dei dati in una tabella separata è il metodo più sicuro, ma il meno flessibile. L'impostazione dei criteri a livello di riga è flessibile e sicura, mentre la condivisione delle visualizzazioni autorizzate è flessibile e offre le migliori prestazioni.
Per confrontare questi metodi in dettaglio, consulta le seguenti risorse:
- Confronto tra visualizzazioni 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
Condividi tutte le visualizzazioni in un set di dati
Se vuoi concedere a una raccolta di visualizzazioni l'accesso a un set di dati senza dover autorizzare ogni singola visualizzazione, puoi raggruppare le visualizzazioni in un set di dati e poi concedere al set di dati che contiene le visualizzazioni 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 visualizzazioni o alle singole visualizzazioni nel set di dati, a seconda delle 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.
L'elenco di controllo dell'accesso di un set di dati può contenere fino a 2500 risorse autorizzate totali, tra cui visualizzazioni autorizzate, set di dati autorizzati e funzioni autorizzate. Se superi questo limite a causa di un numero elevato di visualizzazioni autorizzate, valuta la possibilità di raggruppare le visualizzazioni in set di dati autorizzati. Come best practice, raggruppa le visualizzazioni correlate in set di dati autorizzati quando progetti nuove BigQuery architectures, in particolare architetture multi-tenant.
Per saperne di più, consulta Set di dati autorizzati e Autorizzare un set di dati.
Limitazioni
- Quando crei una visualizzazione autorizzata o una vista materializzata autorizzata in un altro set di dati, il set di dati di origine e il set di dati della visualizzazione autorizzata devono trovarsi nella stessa località regionale location.
- Quando elimini una visualizzazione autorizzata, possono essere necessarie fino a 24 ore prima che la visualizzazione autorizzata venga rimossa dall'elenco delle visualizzazioni. Durante questo periodo, non puoi accedere alla vista autorizzata, ma la vista autorizzata eliminata può essere visualizzata nell'elenco delle visualizzazioni e viene conteggiata ai fini del limite di viste autorizzate. Questo limite può impedire la creazione di viste autorizzate aggiuntive se la nuova vista autorizzata supererebbe il limite.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che forniscono agli utenti le autorizzazioni necessarie per eseguire query sulle visualizzazioni autorizzate o sulle viste materializzate autorizzate che condividi.
Visualizzazioni autorizzate e Controlli di servizio VPC
Quando utilizzi le visualizzazioni autorizzate in un perimetro dei Controlli di servizio VPC, le regole in entrata che consentono alle entità di accedere al progetto contenente la visualizzazione devono includere anche l'accesso a tutti i progetti che contengono i dati di origine da cui la visualizzazione accede ai dati. L'entità non ha bisogno delle autorizzazioni di Identity and Access Management per i progetti di dati di origine, ma la regola in entrata deve consentire l'accesso a BigQuery nel progetto di origine dati oltre al progetto contenente la visualizzazione.
Ruoli obbligatori
Per creare o aggiornare una vista autorizzata, devi disporre delle autorizzazioni per il set di dati che contiene la vista e per il set di dati che fornisce l'accesso alla vista.
Devi anche concedere agli utenti o ai gruppi l'accesso al progetto e al set di dati che contengono la visualizzazione.
Autorizzazioni per il set di dati che contiene la visualizzazione
Le visualizzazioni vengono trattate come risorse tabella in BigQuery, pertanto la creazione di una visualizzazione 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 visualizzazione.
- Per creare un set di dati, devi disporre dell'autorizzazione IAM
bigquery.datasets.createper il progetto. - Per creare una visualizzazione, devi disporre dell'autorizzazione IAM
bigquery.tables.createper il set di dati. Il ruolo IAM predefinitoroles/bigquery.dataEditorinclude le autorizzazioni necessarie per creare una visualizzazione. - Per creare una visualizzazione che esegue query su una tabella a cui non hai accesso, devi disporre dell'autorizzazione
bigquery.tables.getDataper la tabella su cui viene eseguita la query dalla visualizzazione.
Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Autorizzazioni per il set di dati che contiene i dati di origine
Per autorizzare una visualizzazione, alla visualizzazione vengono concesse le autorizzazioni di lettura per il set di dati di origine.
Per eseguire questa autorizzazione, devi disporre delle seguenti autorizzazioni per il set di dati che contiene i dati di origine:
bigquery.datasets.updatedatasets.getIamPolicydatasets.setIamPolicy
Per le autorizzazioni aggiuntive necessarie per aggiornare i set di dati, consulta le autorizzazioni richieste.
Autorizzazioni utente per il progetto e il set di dati per la visualizzazione
Per condividere una visualizzazione autorizzata con utenti o gruppi, devi concedere agli utenti o ai gruppi le seguenti autorizzazioni IAM:
Il ruolo IAM
roles/bigquery.jobUser(oroles/bigquery.user) per il progetto in cui viene eseguito il job di query (il progetto di fatturazione o di esecuzione). Questo ruolo concede l'autorizzazionebigquery.jobs.create, necessaria per eseguire job di query sulla visualizzazione.Il ruolo IAM
roles/bigquery.jobUserè necessario solo per il progetto in cui vuoi eseguire il job, indipendentemente da dove è ospitata la visualizzazione.Il ruolo IAM
roles/bigquery.dataViewerper il set di dati che contiene la vista autorizzata. Questo ruolo concede l'autorizzazionebigquery.tables.getData, necessaria per eseguire query sulla visualizzazione.Se un utente esegue query sulla vista autorizzata da un progetto separato, non ha bisogno del ruolo
roles/bigquery.jobUsernel progetto che ospita la vista. Ha bisogno del ruoloroles/bigquery.dataViewernel set di dati che contiene la visualizzazione e del ruoloroles/bigquery.jobUsernel progetto in cui viene eseguita la query.
Utilizzare le visualizzazioni autorizzate
Le sezioni seguenti descrivono come utilizzare le visualizzazioni autorizzate e le viste materializzate autorizzate.
Creare una vista autorizzata
Per creare una vista autorizzata, scegli una delle seguenti opzioni. Per i passaggi completi per autorizzare, condividere ed eliminare una visualizzazione autorizzata, consulta il tutorial Creare una visualizzazione autorizzata.
Console
Vai alla pagina BigQuery.
Nell'editor di query, digita la query su cui vuoi basare la vista 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.
In Set di dati, digita il set di dati in cui salvare la visualizzazione. Questo 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 vista autorizzata.
Nel riquadro Esplora, seleziona il set di dati utilizzato nella query di origine.
Nel riquadro Dettagli, fai clic su Condivisione > Autorizza visualizzazioni.
Nel riquadro Visualizzazioni autorizzate, in Visualizzazione autorizzata, digita il nome completo della visualizzazione, 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ù, consulta Configurare l'autenticazione per le librerie client.
Per applicare la configurazione Terraform in un Google Cloud progetto, completa i passaggi nelle sezioni seguenti.
Preparare Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto predefinito in cui vuoi applicare le configurazioni Terraform. Google Cloud
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
Preparare la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo root).
-
In Cloud Shell, crea una directory e un nuovo
file all'interno della directory. Il nome del file deve avere l'
.tfestensione, ad esempiomain.tf. In questo tutorial, il file viene chiamatomain.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 file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applicare le modifiche
-
Esamina 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 Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Apply complete!".
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella Google Cloud console, 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 visualizzazione, puoi mantenerne l'accesso completando le seguenti attività per un set di dati, una tabella o una visualizzazione:
- Visualizza il criterio di accesso.
- Concedi l'accesso.
- Revoca l'accesso.
- Nega l'accesso.
Per saperne di più, consulta Controllare l'accesso alle risorse utilizzando IAM.
Rimuovere l'autorizzazione per una visualizzazione
Per rimuovere l'autorizzazione per una visualizzazione, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery nella Google Cloud console.
Nel riquadro a sinistra, fai clic su Esplora:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.
Nel riquadro Esplora , espandi il progetto, fai clic su Set di dati e poi seleziona un set di dati.
Fai clic su Panoramica > Tabelle e poi seleziona una tabella.
Fai clic su Condivisione > Autorizza visualizzazioni.
Fai clic su per Rimuovere l'autorizzazione.
Fai clic su Chiudi.
bq
Per rimuovere l'autorizzazione da una visualizzazione, utilizza il comando bq rm. Inserisci il table_id della visualizzazione da cui vuoi rimuovere l'autorizzazione.
bq rm \ project_id:dataset:table_id
API
Chiama il tables.delete
metodo e utilizza le proprietà projectID,datasetID e tableID per
rimuovere la vista autorizzata per il set di dati. Per saperne di più, consulta
Tabelle.
Quote e limiti
- Le visualizzazioni autorizzate sono soggette ai limiti dei set di dati. Per saperne di più, consulta Limiti dei set di dati.
- Se rimuovi una vista autorizzata, possono essere necessarie fino a 24 ore prima che tutti i riferimenti alla vista vengano rimossi dal sistema. Per evitare errori, attendi 24 ore prima di riutilizzare il nome di una visualizzazione rimossa o crea un nome univoco per la visualizzazione.
Argomenti avanzati
Le sezioni seguenti descrivono i metodi avanzati per l'utilizzo delle visualizzazioni autorizzate.
Combinare la sicurezza a livello di riga con le visualizzazioni autorizzate
I dati visualizzati in una visualizzazione 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 viste materializzate, consulta Utilizzare la sicurezza a livello di riga con altre funzionalità di BigQuery.
Combinare la sicurezza a livello di colonna con le visualizzazioni autorizzate
L'impatto della sicurezza a livello di colonna sulle visualizzazioni è indipendente dal fatto che la visualizzazione sia autorizzata o meno.
Per una descrizione dettagliata di come vengono applicate le autorizzazioni, consulta Eseguire query sulle visualizzazioni per la sicurezza a livello di colonna.
Utilizzare BigQuery sharing 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 insight su larga scala oltre i confini organizzativi.
- Utilizza un framework di sicurezza e privacy solido.
- Supporta la pubblicazione di un set di dati BigQuery, chiamato set di dati condiviso, e delle relative visualizzazioni autorizzate e dei 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. L'abbonamento a una scheda di condivisione crea un set di dati collegato nel tuo progetto, ma non una copia del set di dati, in modo che gli abbonati possano leggere i dati, ma non 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 saperne di più, consulta Introduzione alla condivisione.
Passaggi successivi
- Per un tutorial sulla creazione di una visualizzazione autorizzata, consulta Creare una visualizzazione autorizzata.
- Per creare una visualizzazione logica, consulta Creare visualizzazioni logiche.
- Per creare una vista materializzata, che supporta altri tipi di controllo dell'accesso, consulta Creare viste materializzate.
- Per ottenere i metadati della visualizzazione, consulta Ottenere informazioni sulle visualizzazioni.
- Per gestire le visualizzazioni, consulta Gestire le visualizzazioni.