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'autorizzazionebigquery.datasets.get.ACL: visualizza solo i controlli dell'accesso del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.getIamPolicy.FULL: visualizza sia i metadati che i controlli dell'accesso del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.getebigquery.datasets.getIamPolicyautorizzazioni.
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'autorizzazionebigquery.datasets.update.UPDATE_ACL: aggiorna solo i controlli dell'accesso del set di dati. Questo valore richiede l'autorizzazionebigquery.datasets.setIamPolicy.UPDATE_FULL: aggiorna sia i metadati che i controlli dell'accesso del set di dati. Questo valore richiede le autorizzazionibigquery.datasets.updateebigquery.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) |
|
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 dell'accesso del set di dati, i campi obbligatori e i campi in il 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 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.1Sostituisci 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) |
|
Il valore predefinito. Restituisce i metadati e i controlli dell'accesso aggiornati del set di dati. |
UPDATE_METADATA |
|
Restituisce i metadati aggiornati del set di dati. |
UPDATE_ACL |
|
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 |
|
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.1Sostituisci 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) |
|
Il valore predefinito. Restituisce i metadati e i controlli dell'accesso aggiornati del set di dati. |
UPDATE_METADATA |
|
Restituisce i metadati aggiornati del set di dati. |
UPDATE_ACL |
|
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 |
|
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.1Sostituisci 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.