Modifiche ai controlli di accesso a livello di set di dati
A partire dal 15 settembre 2025, l'autorizzazione bigquery.datasets.getIamPolicy
Identity and Access Management (IAM) è obbligatoria per visualizzare i controlli di accesso di un set di dati e eseguire query sulla
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
vista. L'autorizzazione bigquery.datasets.setIamPolicy
è necessaria per aggiornare i controlli di accesso di un set di dati o per creare un set di dati con controlli di accesso utilizzando l'API.
Attivare l'applicazione anticipata
Prima del 15 settembre 2025, puoi attivare l'applicazione anticipata delle modifiche alle autorizzazioni. Quando attivi la funzionalità, l'autorizzazione bigquery.datasets.getIamPolicy
è necessaria per ottenere i controlli di accesso di un set di dati, mentre l'autorizzazione bigquery.datasets.setIamPolicy
è necessaria per aggiornare i controlli di accesso di un set di dati o per creare un set di dati con controlli di accesso utilizzando l'API.
Per attivare l'applicazione anticipata, imposta l'impostazione di configurazione enable_fine_grained_dataset_acls_option
su TRUE
a livello di organizzazione o progetto. Per le istruzioni su come attivare le impostazioni di configurazione, consulta Gestire le impostazioni di configurazione.
Esempi di impostazioni di configurazione
Gli esempi riportati di seguito mostrano come impostare e rimuovere l'impostazione di configurazione enable_fine_grained_dataset_acls_option
.
Configurare le impostazioni dell'organizzazione
Per configurare le impostazioni dell'organizzazione, utilizza
l'istruzione DDL ALTER ORGANIZATION SET OPTIONS
.
L'esempio seguente imposta enable_fine_grained_dataset_acls_option
su TRUE
a livello di organizzazione:
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
Sostituisci REGION con la
regione
associata alla tua organizzazione, ad esempio us
o europe-west6
.
L'esempio seguente cancella l'impostazioneenable_fine_grained_dataset_acls_option
a livello di organizzazione:
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Configura le impostazioni del progetto
Per configurare le impostazioni del progetto, utilizza
l'istruzione DDL ALTER PROJECT SET OPTIONS
.
L'istruzione DDL ALTER PROJECT SET OPTIONS
accetta facoltativamente la variabile project_id
. Se project_id
non è specificato, viene utilizzato per impostazione predefinita il progetto corrente in cui viene eseguita la query.
L'esempio seguente imposta enable_fine_grained_dataset_acls_option
su TRUE
.
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
Sostituisci PROJECT_ID con l'ID progetto.
L'esempio seguente cancella l'impostazioneenable_fine_grained_dataset_acls_option
a livello di progetto:
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Modifiche ai ruoli personalizzati
Questa modifica alle autorizzazioni richieste influisce sui ruoli personalizzati esistenti che concedono l'autorizzazionebigquery.datasets.get
, bigquery.datasets.create
obigquery.datasets.update
e non concedono anche l'autorizzazionebigquery.datasets.getIamPolicy
o bigquery.datasets.setIamPolicy
.
Se vuoi mantenere la funzionalità esistente dei ruoli personalizzati, entro il 15 settembre 2025 tutti i ruoli personalizzati che includono solo l'autorizzazione bigquery.datasets.get
, bigquery.datasets.update
o bigquery.datasets.create
devono essere aggiornati in modo da includere l'autorizzazione bigquery.datasets.getIamPolicy
o bigquery.datasets.setIamPolicy
. Se i tuoi ruoli personalizzati devono visualizzare o aggiornare solo i metadati di un set di dati, utilizza i nuovi parametri dataset_view
e
update_mode
.
Questa modifica non influisce sui ruoli predefiniti di BigQuery. Tutti
i ruoli predefiniti che concedono l'autorizzazione bigquery.datasets.get
concedono anche
l'autorizzazione bigquery.datasets.getIamPolicy
. Tutti i ruoli predefiniti che grantano l'autorizzazione bigquery.datasets.update
grantano anche l'autorizzazione bigquery.datasets.setIamPolicy
.
Modifiche ai comandi dello strumento a riga di comando bq
Quando attivi l'applicazione anticipata, sono interessati i seguenti comandi dello strumento bq.
bq show
Puoi utilizzare il comando bq show
con il seguente flag:
--dataset_view={METADATA|ACL|FULL}
- Specifica come applicare le autorizzazioni quando visualizzi i controlli di accesso o i metadati di un set di dati.
Utilizza uno dei seguenti valori:
METADATA
: visualizza solo i metadati del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.get
.ACL
: visualizza solo i controlli di accesso del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.getIamPolicy
.FULL
: visualizza sia i metadati sia i controlli di accesso del set di dati. Questo valore richiede le autorizzazionibigquery.datasets.get
ebigquery.datasets.getIamPolicy
.
bq update
Puoi utilizzare il comando bq update
con il seguente flag:
--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}
- Specifica come applicare le autorizzazioni quando aggiorni i controlli di accesso o i metadati di un set di dati.
Utilizza uno dei seguenti valori:
UPDATE_METADATA
: aggiorna solo i metadati del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.update
.UPDATE_ACL
: aggiorna solo i controlli di accesso del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.setIamPolicy
.UPDATE_FULL
: aggiorna sia i metadati sia i controlli di accesso del set di dati. Questo valore richiede le autorizzazionibigquery.datasets.update
ebigquery.datasets.setIamPolicy
.
Modifiche alle istruzioni DCL (Data Control Language)
Quando attivi l'applicazione anticipata, sono necessarie le seguenti autorizzazioni per eseguire istruzioni GRANT
e REVOKE
sui set di dati utilizzando il linguaggio di controllo dei dati (DCL):
bigquery.datasets.setIamPolicy
Modifiche alle query di visualizzazione INFORMATION_SCHEMA
Quando attivi l'applicazione anticipata, l'autorizzazione bigquery.datasets.getIamPolicy
è obbligatoria per eseguire query sulla
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
vista.
Modifiche ai metodi dell'API
Dopo aver attivato l'applicazione anticipata, sono interessati i seguenti metodi dei set di dati dell'API REST v2.
Metodo datasets.get
Il metodo datasets.get
ha un parametro path aggiuntivo denominato dataset_view
.
Questo parametro ti offre un maggiore controllo sulle informazioni restituite dal metododatasets.get
. Anziché restituire sempre sia i controlli di accesso sia i metadati, il parametro dataset_view
ti consente di specificare se restituire solo i metadati, solo i controlli di accesso o entrambi.
Il campo access
nella risorsa set di dati contiene i controlli di accesso del set di dati. Gli altri campi, come friendlyName
,
description
e labels
, rappresentano i metadati del set di dati.
La tabella seguente mostra l'autorizzazione e la risposta dell'API richieste per i diversi valori supportati dal parametro dataset_view
:
Valore parametro | Autorizzazioni obbligatorie | Risposta dell'API |
---|---|---|
DATASET_VIEW_UNSPECIFIED (o vuoto) |
|
Il valore predefinito. Restituisce i metadati e i controlli dell'accesso del set di dati. |
METADATA |
|
Restituisce i metadati del set di dati. |
ACL |
|
Restituisce i controlli di accesso, i campi obbligatori e i campi della risorsa del set di dati che sono solo di output. |
FULL |
|
Restituisce i metadati e i controlli dell'accesso del set di dati. |
Se non attivi l'applicazione anticipata o se la disattivi dopo averla attivata, puoi utilizzare il parametro dataset_view
con i valori METADATA
o ACL
. I valori FULL
e DATASET_VIEW_UNSPECIFIED
(o vuoti) prevedono per impostazione predefinita il comportamento precedente. L'autorizzazione bigquery.datasets.get
ti consente di ottenere sia i metadati sia i controlli di accesso.
Esempio
L'esempio seguente invia una richiesta GET
con il parametro dataset_view
impostato su METADATA
:
GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1
Sostituisci quanto segue:
- YOUR_PROJECT: il nome del progetto
- YOUR_DATASET: il nome del set di dati
- YOUR_API_KEY: la tua chiave API
Metodo datasets.update
Il metodo datasets.update
ha un parametro path
aggiuntivo chiamato update_mode
.
Questo parametro ti offre un maggiore controllo sui campi aggiornati dal metododatasets.update
. Anziché consentire sempre gli aggiornamenti sia ai controlli dell'accesso sia ai metadati, il parametro update_mode
ti consente di specificare se aggiornare solo i metadati, solo i controlli dell'accesso o entrambi.
Il campo access
nella risorsa set di dati contiene i controlli di accesso del set di dati. Gli altri campi, come friendlyName
,
description
e labels
, rappresentano i metadati del set di dati.
La tabella seguente mostra l'autorizzazione e la risposta dell'API richieste per i diversi valori supportati dal parametro update_mode
:
Valore parametro | Autorizzazioni obbligatorie | Risposta dell'API |
---|---|---|
UPDATE_MODE_UNSPECIFIED (o vuoto) |
|
Il valore predefinito. Restituisce i metadati e i controlli di accesso aggiornati del set di dati. |
UPDATE_METADATA |
|
Restituisce i metadati aggiornati del set di dati. |
UPDATE_ACL |
|
Restituisce i controlli dell'accesso, i campi obbligatori e i campi della risorsa del set di dati aggiornati solo per l'output. |
UPDATE_FULL |
|
Restituisce i metadati e i controlli dell'accesso aggiornati del set di dati. |
Se non attivi l'applicazione anticipata o se la disattivi dopo averla attivata,
in BigQuery viene applicato per impostazione predefinita il comportamento precedente.
L'autorizzazione bigquery.datasets.update
ti consente di aggiornare sia
i metadati sia i controlli di accesso.
Esempio
L'esempio seguente invia una richiesta PUT
con il parametro update_mode
impostato su METADATA
:
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1
Sostituisci quanto segue:
- YOUR_PROJECT: il nome del progetto
- YOUR_DATASET: il nome del set di dati
- YOUR_API_KEY: il nome della tua chiave API
Metodo datasets.patch
Il metodo datasets.patch
ha un parametro path
aggiuntivo chiamato update_mode
.
Questo parametro ti offre un maggiore controllo sui campi aggiornati dal metododatasets.patch
. Anziché consentire sempre gli aggiornamenti sia ai controlli dell'accesso sia ai metadati, il parametro update_mode
ti consente di specificare se aggiornare solo i metadati, solo i controlli dell'accesso o entrambi.
Il campo access
nella risorsa set di dati contiene i controlli di accesso del set di dati. Gli altri campi, come friendlyName
,
description
e labels
, rappresentano i metadati del set di dati.
La tabella seguente mostra l'autorizzazione e la risposta dell'API richieste per i diversi valori supportati dal parametro update_mode
:
Valore parametro | Autorizzazioni obbligatorie | Risposta dell'API |
---|---|---|
UPDATE_MODE_UNSPECIFIED (o vuoto) |
|
Il valore predefinito. Restituisce i metadati e i controlli di accesso aggiornati del set di dati. |
UPDATE_METADATA |
|
Restituisce i metadati aggiornati del set di dati. |
UPDATE_ACL |
|
Restituisce i controlli dell'accesso, i campi obbligatori e i campi della risorsa del set di dati aggiornati solo per l'output. |
UPDATE_FULL |
|
Restituisce i metadati e i controlli dell'accesso aggiornati del set di dati. |
Se non attivi l'applicazione anticipata o se la disattivi dopo averla attivata,
in BigQuery viene applicato per impostazione predefinita il comportamento precedente.
L'autorizzazione bigquery.datasets.update
ti consente di aggiornare sia
i metadati sia i controlli di accesso.
Esempio
L'esempio seguente invia una richiesta PUT
con il parametro update_mode
impostato su METADATA
:
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1
Sostituisci quanto segue:
- YOUR_PROJECT: il nome del progetto
- YOUR_DATASET: il nome del set di dati
- YOUR_API_KEY: il nome della tua chiave API
Metodo datasets.insert
Se attivi l'applicazione anticipata e utilizzi il metodo datasets.insert
per creare un set di dati con controlli di accesso, BigQuery verifica che le autorizzazioni bigquery.datasets.create
e bigquery.datasets.setIamPolicy
siano concesse all'utente.
Se utilizzi l'API per creare un set di dati senza controlli di accesso, è necessaria solo l'autorizzazione bigquery.datasets.create
.