In questo tutorial crei una visualizzazione autorizzata in BigQuery che viene utilizzata dai tuoi analisti dei dati. Le viste autorizzate ti consentono di condividere i risultati di una query con utenti e gruppi specifici senza concedere loro accesso ai dati di origine sottostanti. La visualizzazione viene fornita con accesso ai dati di origine anziché a un utente o un gruppo. Puoi anche usare la query SQL della vista per escludere colonne e campi dai risultati della query.
Un approccio alternativo all'utilizzo di una vista autorizzata consiste nel configurare i controlli di accesso a livello di colonna sui dati di origine e poi concedere agli utenti l'accesso a una vista che esegue query sui dati con controllo dell'accesso. Per ulteriori informazioni sui controlli di accesso a livello di colonna, consulta Introduzione al controllo di accesso a livello di colonna.
Se hai più visualizzazioni autorizzate che accedono allo stesso set di dati di origine, puoi autorizzare il set di dati che contiene le visualizzazioni anziché autorizzare una singola visualizzazione.
Obiettivi
- Crea un set di dati contenente 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 contenente la vista autorizzata.
- Crea una vista autorizzata da una query SQL che limiti le colonne che gli analisti dei dati possono vedere nei risultati della query.
- Concedi agli analisti dei dati l'autorizzazione a eseguire job di query.
- Concedi ai tuoi analisti dei dati l'accesso al set di dati contenente la visualizzazione autorizzata.
- Concedi alla visualizzazione autorizzata l'accesso al set di dati di origine.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
- Assicurati di disporre delle autorizzazioni necessarie per eseguire le attività descritte in questo documento.
Ruoli obbligatori
Se crei un nuovo progetto, sei il proprietario del progetto e ti vengono concesse tutte le autorizzazioni IAM necessarie per completare questo tutorial.
Se utilizzi un progetto esistente, devi disporre del seguente ruolo.
Make sure that you have the following role or roles on the project:
- BigQuery Studio Admin (
roles/bigquery.studioAdmin
)
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Vai a IAM - Seleziona il progetto.
- Fai clic su Concedi accesso.
-
Nel campo Nuovi principali, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.
- Nell'elenco Seleziona un ruolo, seleziona un ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
- Fai clic su Salva.
bigquery.datasets.create
per creare il set di dati di origine e il set di dati che contiene la vista autorizzata.bigquery.tables.create
per creare la tabella che memorizza i dati di origine e per creare la vista autorizzata.bigquery.jobs.create
per eseguire il job di query che carica i dati nella tabella di origine.bigquery.datasets.getIamPolicy
ebigquery.datasets.get
per ottenere le autorizzazioni IAM per il set di dati di origine e per il set di dati contenente la vista autorizzata.bigquery.datasets.setIamPolicy
ebigquery.datasets.update
per aggiornare le autorizzazioni IAM per il set di dati di origine e per il set di dati che contiene la vista autorizzata.
Per saperne di più sui ruoli in BigQuery, consulta Ruoli IAM predefiniti.
Autorizzazioni obbligatorie
Per creare le risorse utilizzate in questo tutorial, sono obbligatorie le seguenti autorizzazioni. Il ruolo predefinito Amministratore di BigQuery Studio concede tutte queste autorizzazioni.
Per ulteriori informazioni sulle autorizzazioni IAM in BigQuery, consulta Autorizzazioni BigQuery.
Crea un set di dati per archiviare i dati di origine
Per iniziare, crea un set di dati per archiviare i dati di origine.
Per creare il set di dati di origine, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, accanto al progetto in cui vuoi creare il set di dati, fai clic su > Crea set di dati.
Visualizza azioniNella pagina Crea set di dati:
In ID set di dati, inserisci
github_source_data
.In Tipo di località, verifica che sia selezionata l'opzione Più regioni.
Per Più regioni, scegli US o EU. Tutte le risorse che crei in questo tutorial devono trovarsi nella stessa località multiregione.
Fai clic su Crea set di dati.
SQL
Utilizza l'istruzione DDL CREATE SCHEMA
:
Nella console Google Cloud, vai alla pagina BigQuery Studio.
Nell'editor di query, inserisci la seguente istruzione:
CREATE SCHEMA github_source_data;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Crea una tabella e carica i dati di origine
Dopo aver creato il set di dati di origine, compila una tabella al suo interno salvando i risultati di una query SQL in una tabella di destinazione. La query recupera i dati dal set di dati pubblico di GitHub.
Console
Vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente query:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;
Fai clic su Altro e seleziona Impostazioni query.
Per Destinazione, seleziona Imposta una tabella di destinazione per i risultati della query.
In Set di dati, inserisci
PROJECT_ID.github_source_data
.Sostituisci
PROJECT_ID
con l'ID progetto.In ID tabella, inserisci
github_contributors
.Fai clic su Salva.
Fai clic su Esegui.
Al termine della query, nel riquadro Explorer, espandi
github_source_data
e fai clic sugithub_contributors
.Per verificare che i dati siano stati scritti nella tabella, fai clic sulla scheda Anteprima.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Crea un set di dati per archiviare la vista autorizzata
Dopo aver creato il set di dati di origine, devi creare un nuovo set di dati separato per memorizzare la vista autorizzata che condividi con i tuoi analisti dei dati. In un passaggio successivo, concedi alla vista autorizzata l'accesso ai dati nel set di dati di origine. I tuoi analisti dei dati avranno quindi accesso alla vista autorizzata, ma non accesso diretto ai dati di origine.
Le viste autorizzate devono essere create in un set di dati diverso da quello dei dati di origine. In questo modo, i proprietari dei dati possono concedere agli utenti l'accesso alla vista autorizzata senza dover concedere contemporaneamente l'accesso ai dati sottostanti. Il set di dati di origine e il set di dati delle visualizzazioni autorizzate devono trovarsi nella stessa posizione regionale.
Per creare un set di dati in cui archiviare la visualizzazione, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.
Espandi l'opzione Visualizza azioni
e fai clic su Crea set di dati.Nella pagina Crea set di dati:
In ID set di dati, inserisci
shared_views
.In Tipo di località, verifica che sia selezionato Più regioni.
Per Più regioni, scegli US o EU. Tutte le risorse che crei in questo tutorial devono trovarsi nella stessa località multiregione.
Fai clic su Crea set di dati.
SQL
Utilizza l'istruzione DDL CREATE SCHEMA
:
Nella console Google Cloud, vai alla pagina BigQuery Studio.
Nell'editor di query, inserisci la seguente istruzione:
CREATE SCHEMA shared_views;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Crea la vista autorizzata nel nuovo set di dati
Nel nuovo set di dati, crea la vista che intendi autorizzare. Questa è la visualizzazione che condividi con i tuoi analisti dei dati. Questa vista viene creata utilizzando una query SQL che esclude le colonne che non vuoi che gli analisti dei dati vedano.
La tabella di origine github_contributors
contiene due campi di tipo RECORD
:
author
e committer
. Per questo tutorial, la visualizzazione autorizzata esclude tutti i dati dell'autore, ad eccezione del nome, ed esclude tutti i dati del committer, ad eccezione del nome.
Per creare la vista nel nuovo set di dati, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente query.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Sostituisci
PROJECT_ID
con l'ID progetto.Fai clic su Salva > Salva vista.
Nella finestra di dialogo Salva vista, procedi nel seguente modo:
In Progetto, verifica che il progetto sia selezionato.
In Set di dati, inserisci
shared_views
.In Tabella, inserisci
github_analyst_view
.Fai clic su Salva.
SQL
Utilizza l'istruzione DDL CREATE VIEW
:
Nella console Google Cloud, vai alla pagina BigQuery Studio.
Nell'editor di query, inserisci la seguente istruzione:
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Sostituisci
PROJECT_ID
con l'ID progetto.Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Concedi agli analisti dei dati l'autorizzazione a eseguire job di query
Per eseguire query sulla visualizzazione, gli analisti dei dati devono disporre dell'autorizzazione bigquery.jobs.create
per poter eseguire job di query. Il ruolo bigquery.studioUser
include
bigquery.jobs.create
autorizzazione. Il ruolo bigquery.studioUser
non concede agli utenti l'autorizzazione per visualizzare o eseguire query sulla visualizzazione autorizzata. In un passaggio successivo, accorda ai tuoi analisti dei dati l'autorizzazione ad accedere alla visualizzazione.
Per assegnare il gruppo di analisti dei dati al ruolo bigquery.studioUser
a livello di progetto:
Nella console Google Cloud, vai alla pagina IAM.
Assicurati che il progetto sia selezionato nel selettore dei progetti.
Fai clic su
Concedi l'accesso.Nella finestra di dialogo Concedi l'accesso a:
Nel campo Nuove entità, inserisci il gruppo che contiene i tuoi analisti dei dati. Ad esempio,
data_analysts@example.com
.Nel campo Seleziona un ruolo, cerca e seleziona il ruolo Utente BigQuery Studio.
Fai clic su Salva.
Concedi agli analisti di dati l'autorizzazione a eseguire query sulla visualizzazione autorizzata
Affinché gli analisti di dati possano eseguire query sulla visualizzazione, devono disporre del ruolo bigquery.dataViewer
a livello di set di dati o di visualizzazione.
L'assegnazione di questo ruolo a livello di set di dati consente agli analisti di accedere a tutte le tabelle e le visualizzazioni del set di dati. Poiché il set di dati creato in questo tutorial contiene
una singola visualizzazione autorizzata, concedi l'accesso a livello di set di dati. Se hai una raccolta di visualizzazioni autorizzate a cui devi concedere l'accesso, ti consigliamo di utilizzare un set di dati autorizzato.
Il ruolo bigquery.studioUser
che hai concesso ai tuoi analisti dei dati in precedenza
li abilita a creare job di query. Tuttavia, non possono eseguire query sulla visualizzazione se non dispongono anche dell'accesso bigquery.dataViewer
alla visualizzazione autorizzata o al set di dati che la contiene.
Per concedere ai tuoi analisti dei dati bigquery.dataViewer
l'accesso al set di dati che contiene la vista autorizzata, svolgi i seguenti passaggi:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, seleziona il set di dati
shared_views
.Fai clic su > Autorizzazioni.
CondivisioneNel riquadro Autorizzazioni di condivisione, fai clic su Aggiungi entità.
In Nuovi principali, inserisci il gruppo che contiene i tuoi analisti dei dati, ad esempio
data_analysts@example.com
.Fai clic su Seleziona un ruolo e seleziona BigQuery > Visualizzatore dati BigQuery.
Fai clic su Salva.
Fai clic su Chiudi.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Autorizza la visualizzazione ad accedere al set di dati di origine
Dopo aver creato i controlli di accesso per il set di dati contenente la vista autorizzata, concedi alla vista autorizzata l'accesso al set di dati di origine. Questa autorizzazione concede alla visualizzazione, ma non al gruppo di analisti dei dati, l'accesso ai dati di origine.
Per concedere alla vista autorizzata l'accesso ai dati di origine, scegli una di queste opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, seleziona il set di dati
github_source_data
.Fai clic su > Autorizza visualizzazioni.
CondivisioneNel riquadro Visualizzazioni autorizzate, in Visualizzazione autorizzata, inserisci
PROJECT_ID.shared_views.github_analyst_view
.Sostituisci PROJECT_ID con l'ID progetto.
Fai clic su Aggiungi autorizzazione.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Verificare la configurazione
Al termine della configurazione, un membro del gruppo di analisti dei dati (ad esempio data_analysts
) può verificarla eseguendo una query sulla visualizzazione.
Per verificare la configurazione, un analista dei dati deve eseguire la seguente query:
Vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
SELECT * FROM `
PROJECT_ID
.shared_views.github_analyst_view`;Sostituisci
PROJECT_ID
con l'ID progetto.Fai clic su
Esegui.
I risultati della query sono simili ai seguenti. Nei risultati sono visibili solo il nome dell'autore e il nome del committer.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Codice sorgente completo
Di seguito è riportato il codice sorgente completo del tutorial per riferimento futuro.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Console
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Elimina singole risorse
In alternativa, per rimuovere le singole risorse utilizzate in questo tutorial:
Elimina il set di dati che contiene la visualizzazione autorizzata.
Elimina la tabella nel set di dati di origine.
Poiché hai creato le risorse utilizzate in questo tutorial, non sono necessarie autorizzazioni aggiuntive per eliminarle.
Passaggi successivi
- Per saperne di più sui controlli dell'accesso in BigQuery, consulta Ruoli e autorizzazioni IAM di BigQuery.
- Per scoprire di più sulle viste BigQuery, consulta Introduzione alle viste logiche.
- Per scoprire di più sulle viste autorizzate, consulta Viste autorizzate.
- Per conoscere i concetti di base sul controllo dell'accesso, consulta la panoramica di IAM.
- Per scoprire come gestire il controllo dell'accesso, consulta Gestire i criteri.