Modifiche ai controlli dell'accesso a livello di set di dati

Se attivi l'applicazione della configurazione enable_fine_grained_dataset_acls_option per i controlli dell'accesso a livello di set di dati, è necessaria l'autorizzazione bigquery.datasets.getIamPolicy Identity and Access Management (IAM) per visualizzare i controlli dell'accesso di un set di dati ed eseguire query sulla visualizzazione INFORMATION_SCHEMA.OBJECT_PRIVILEGES. L'autorizzazione bigquery.datasets.setIamPolicy è necessaria per aggiornare i controlli dell'accesso di un set di dati o per creare un set di dati con controlli dell'accesso utilizzando l' API.

Se non attivi l'applicazione, i controlli dell'accesso a livello di set di dati rimangono invariati.

Attivare l'applicazione

Puoi attivare l'applicazione delle modifiche delle autorizzazioni. Quando attivi l'applicazione, l'autorizzazione bigquery.datasets.getIamPolicy è necessaria per ottenere i controlli dell'accesso di un set di dati e l'autorizzazione bigquery.datasets.setIamPolicy è necessaria per aggiornare i controlli dell'accesso di un set di dati o per creare un set di dati con controlli dell'accesso utilizzando l'API.

Per attivare l'applicazione, imposta l'impostazione di configurazione enable_fine_grained_dataset_acls_option su TRUE a livello di organizzazione o progetto. Se vuoi disattivare l'applicazione dopo averla attivata, imposta l'impostazione di configurazione enable_fine_grained_dataset_acls_option su FALSE a livello di organizzazione o progetto. Per istruzioni su come attivare le impostazioni di configurazione, consulta Gestire le impostazioni di configurazione.

Esempi di impostazioni di configurazione

Gli esempi seguenti 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' ALTER ORGANIZATION SET OPTIONS istruzione DDL. 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'impostazione enable_fine_grained_dataset_acls_option a livello di organizzazione:

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);

Configurare le impostazioni del progetto

Per configurare le impostazioni progetto, utilizza l' ALTER PROJECT SET OPTIONS istruzione DDL. L'istruzione DDL ALTER PROJECT SET OPTIONS accetta facoltativamente la variabile project_id. Se project_id non è specificato, il valore predefinito è 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'impostazione enable_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

Se attivi l'applicazione delle modifiche delle autorizzazioni, tutti i ruoli personalizzati che concedono l'autorizzazione bigquery.datasets.get, bigquery.datasets.create, o bigquery.datasets.update e non concedono anche l'autorizzazione bigquery.datasets.getIamPolicy o bigquery.datasets.setIamPolicy sono interessati.

Se vuoi mantenere la funzionalità esistente dei ruoli personalizzati, devi aggiornare tutti i ruoli personalizzati che includono solo l'autorizzazione bigquery.datasets.get, bigquery.datasets.update, o bigquery.datasets.create 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 concedono l'autorizzazione bigquery.datasets.update concedono anche l'autorizzazione bigquery.datasets.setIamPolicy.

Modifiche ai comandi dello strumento a riga di comando bq

Quando attivi l'applicazione anticipata, i seguenti comandi dello strumento bq sono interessati.

bq show

Puoi utilizzare il bq show comando con il seguente flag:

--dataset_view={METADATA|ACL|FULL}
Specifica come applicare le autorizzazioni quando visualizzi i controlli dell'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'autorizzazione bigquery.datasets.get.
  • ACL: visualizza solo i controlli dell'accesso del set di dati. Questo valore richiede l'autorizzazione bigquery.datasets.getIamPolicy.
  • FULL: visualizza sia i metadati che i controlli dell'accesso del set di dati. Questo valore richiede l'autorizzazione bigquery.datasets.get e bigquery.datasets.getIamPolicy autorizzazioni.

bq update

Puoi utilizzare il bq update comando con il seguente flag:

--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}
Specifica come applicare le autorizzazioni quando aggiorni i controlli dell'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'autorizzazione bigquery.datasets.update.
  • UPDATE_ACL: aggiorna solo i controlli dell'accesso del set di dati. Questo valore richiede l'autorizzazione bigquery.datasets.setIamPolicy.
  • UPDATE_FULL: aggiorna sia i metadati che i controlli dell'accesso del set di dati. Questo valore richiede le autorizzazioni bigquery.datasets.update e bigquery.datasets.setIamPolicy.

Modifiche alle istruzioni Data Control Language (DCL)

Quando attivi l'applicazione anticipata, sono necessarie le seguenti autorizzazioni per eseguire GRANT e REVOKE istruzioni 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, è necessaria l'bigquery.datasets.getIamPolicy autorizzazione per eseguire query sulla INFORMATION_SCHEMA.OBJECT_PRIVILEGES visualizzazione.

Modifiche ai metodi API

Dopo aver attivato l'applicazione anticipata, i seguenti metodi per i set di dati dell'API REST v2 sono interessati.

Metodo datasets.get

Il metodo datasets.get ha un parametro di query aggiuntivo denominato dataset_view.

Questo parametro ti offre un maggiore controllo sulle informazioni restituite dal metodo datasets.get. Anziché restituire sempre sia i controlli dell'accesso che i metadati, il parametro dataset_view ti consente di specificare se restituire solo i metadati, solo i controlli dell'accesso o entrambi.

Il campo access nella risorsa del set di dati contiene i controlli dell'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 richiesta e la risposta dell'API per i diversi valori supportati dal parametro dataset_view:

Valore parametro Autorizzazioni obbligatorie Risposta dell'API
DATASET_VIEW_UNSPECIFIED (o vuoto)
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
Il valore predefinito. Restituisce i metadati e i controlli dell'accesso del set di dati.
METADATA
  • bigquery.datasets.get
Restituisce i metadati del set di dati.
ACL
  • bigquery.datasets.getIamPolicy
Restituisce i controlli dell'accesso del set di dati, i campi obbligatori e i campi in il set di dati che sono solo di output.
FULL
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
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 vuoto) utilizzano il comportamento precedente per impostazione predefinita; l'autorizzazione bigquery.datasets.get ti consente di ottenere sia i metadati che i controlli dell'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 di query aggiuntivo denominato update_mode.

Questo parametro ti offre un maggiore controllo sui campi aggiornati dal metodo datasets.update. Anziché consentire sempre gli aggiornamenti sia ai controlli dell'accesso che 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 del set di dati contiene i controlli dell'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 richiesta e la risposta dell'API per i diversi valori supportati dal parametro update_mode:

Valore parametro Autorizzazioni obbligatorie Risposta dell'API
UPDATE_MODE_UNSPECIFIED (o vuoto)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Il valore predefinito. Restituisce i metadati e i controlli dell'accesso aggiornati del set di dati.
UPDATE_METADATA
  • bigquery.datasets.update
Restituisce i metadati aggiornati del set di dati.
UPDATE_ACL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Restituisce i controlli dell'accesso aggiornati del set di dati, i campi obbligatori e campi nella risorsa del set di dati che sono solo di output.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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, BigQuery utilizza il comportamento precedente per impostazione predefinita; l'autorizzazione bigquery.datasets.update ti consente di aggiornare sia i metadati che i controlli dell'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 di query aggiuntivo denominato update_mode.

Questo parametro ti offre un maggiore controllo sui campi aggiornati dal metodo datasets.patch. Anziché consentire sempre gli aggiornamenti sia ai controlli dell'accesso che 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 del set di dati contiene i controlli dell'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 richiesta e la risposta dell'API per i diversi valori supportati dal parametro update_mode:

Valore parametro Autorizzazioni obbligatorie Risposta dell'API
UPDATE_MODE_UNSPECIFIED (o vuoto)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Il valore predefinito. Restituisce i metadati e i controlli dell'accesso aggiornati del set di dati.
UPDATE_METADATA
  • bigquery.datasets.update
Restituisce i metadati aggiornati del set di dati.
UPDATE_ACL
  • bigquery.datasets.setIamPolicy
Restituisce i controlli dell'accesso aggiornati del set di dati, i campi obbligatori e campi nella risorsa del set di dati che sono solo di output.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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, BigQuery utilizza il comportamento precedente per impostazione predefinita; l'autorizzazione bigquery.datasets.update ti consente di aggiornare sia i metadati che i controlli dell'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 dell'accesso, BigQuery verifica che all'utente siano concesse le autorizzazioni bigquery.datasets.create e bigquery.datasets.setIamPolicy.

Se utilizzi l'API per creare un set di dati senza controlli dell'accesso, è necessaria solo l'autorizzazione bigquery.datasets.create.