Modifications apportées aux contrôles d'accès au niveau de l'ensemble de données
Si vous choisissez d'appliquer la configuration
enable_fine_grained_dataset_acls_option pour les
contrôles d'accès au niveau de l'ensemble de données, l'autorisation bigquery.datasets.getIamPolicy
IAM (Identity and Access Management) est
requise pour afficher les contrôles d'accès d'un ensemble de données et interroger la vue
INFORMATION_SCHEMA.OBJECT_PRIVILEGES. L'bigquery.datasets.setIamPolicy autorisation est requise pour mettre à jour les contrôles d'accès d'un
ensemble de données ou pour créer un ensemble de données avec des contrôles d'accès à l'
API.
Si vous ne choisissez pas d'appliquer la configuration, les contrôles d'accès au niveau de l'ensemble de données restent inchangés.
Choisir d'appliquer la configuration
Vous pouvez choisir d'appliquer les modifications apportées aux autorisations. Dans ce cas, l'autorisation bigquery.datasets.getIamPolicy est nécessaire pour obtenir les contrôles d'accès d'un ensemble de données, et l'autorisation bigquery.datasets.setIamPolicy est nécessaire pour mettre à jour les contrôles d'accès d'un ensemble de données ou pour créer un ensemble de données avec des contrôles d'accès à l'aide de l'API.
Pour choisir d'appliquer la configuration, définissez le paramètre de configuration enable_fine_grained_dataset_acls_option sur TRUE au niveau de l'organisation ou du projet. Si vous souhaitez revenir en arrière après avoir choisi d'appliquer la configuration, définissez le paramètre de configuration enable_fine_grained_dataset_acls_option sur FALSE au niveau de l'organisation ou du projet. Pour
savoir comment activer les paramètres de configuration, consultez Gérer les paramètres de configuration
.
Exemples de paramètres de configuration
Les exemples suivants montrent comment définir et supprimer le paramètre de configuration enable_fine_grained_dataset_acls_option.
Configurer les paramètres de l'organisation
Pour configurer les paramètres de l'organisation, utilisez l'
ALTER ORGANIZATION SET OPTIONS instruction LDD.
L'exemple suivant définit enable_fine_grained_dataset_acls_option sur TRUE au niveau de l'organisation :
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
Remplacez REGION par la
région
associée à votre organisation, par exemple us ou europe-west6.
L'exemple suivant efface le paramètre enable_fine_grained_dataset_acls_option au niveau de l'organisation :
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Configurer les paramètres du projet
Pour configurer les paramètres du projet, utilisez l'instruction LDD ALTER PROJECT SET OPTIONS.
L'instruction LDD ALTER PROJECT SET OPTIONS accepte éventuellement la variable project_id. Si project_id n'est pas spécifié, il s'agit par défaut du projet en cours dans lequel la requête est exécutée.
L'exemple suivant définit enable_fine_grained_dataset_acls_option sur TRUE.
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
Remplacez PROJECT_ID par l'ID du projet.
L'exemple suivant efface le paramètre enable_fine_grained_dataset_acls_option au niveau du projet :
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Modifications apportées aux rôles personnalisés
Si vous choisissez d'appliquer les modifications apportées aux autorisations, tous les rôles personnalisés qui
accordent les autorisations bigquery.datasets.get, bigquery.datasets.create ou
bigquery.datasets.update et qui n'accordent pas également les autorisations
bigquery.datasets.getIamPolicy ou bigquery.datasets.setIamPolicy
sont concernés.
Tous les rôles personnalisés qui n'incluent que les autorisations bigquery.datasets.get,
bigquery.datasets.update, ou bigquery.datasets.create doivent être
mis à jour pour inclure les autorisations bigquery.datasets.getIamPolicy ou
bigquery.datasets.setIamPolicy, si vous souhaitez
conserver les fonctionnalités existantes des rôles personnalisés. Si vos rôles personnalisés n'ont besoin d'afficher ou de mettre à jour que les métadonnées d'un ensemble de données, utilisez les nouveaux paramètres dataset_view et update_mode.
Les rôles prédéfinis BigQuery ne sont pas concernés par cette modification. Tous
les rôles prédéfinis qui accordent l'autorisation bigquery.datasets.get accordent également
l'autorisation bigquery.datasets.getIamPolicy. Tous les rôles prédéfinis qui accordent l'autorisation bigquery.datasets.update accordent également l'autorisation bigquery.datasets.setIamPolicy.
Modifications apportées aux commandes de l'outil de ligne de commande bq
Lorsque vous choisissez d'appliquer la configuration de manière anticipée, les commandes d'outil bq suivantes sont concernées.
bq show
Vous pouvez exécuter la bq show
commande avec les options suivantes :
--dataset_view={METADATA|ACL|FULL}- Spécifie comment appliquer les autorisations lorsque vous affichez les contrôles d'accès ou les métadonnées d'un ensemble de données.
Utilisez l'une des valeurs suivantes :
METADATA: affiche uniquement les métadonnées de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.get.ACL: affiche uniquement les contrôles d'accès de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.getIamPolicy.FULL: affiche à la fois les métadonnées et les contrôles d'accès de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.getetbigquery.datasets.getIamPolicyautorisations.
bq update
Vous pouvez exécuter la bq update
commande avec les options suivantes :
--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}- Spécifie comment appliquer les autorisations lorsque vous mettez à jour les contrôles d'accès ou les métadonnées d'un ensemble de données.
Utilisez l'une des valeurs suivantes :
UPDATE_METADATA: met à jour uniquement les métadonnées de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.update.UPDATE_ACL: met à jour uniquement les contrôles d'accès de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.setIamPolicy.UPDATE_FULL: met à jour à la fois les métadonnées et les contrôles d'accès de l'ensemble de données. Cette valeur nécessite les autorisationsbigquery.datasets.updateetbigquery.datasets.setIamPolicy.
Modifications apportées aux instructions de langage de contrôle de données (DCL)
Lorsque vous choisissez d'appliquer la configuration de manière anticipée, les autorisations suivantes sont requises pour
exécuter GRANT et REVOKE instructions sur des ensembles de données à l'aide du langage de contrôle de données
(DCL) :
bigquery.datasets.setIamPolicy
Modifications apportées aux requêtes de vue INFORMATION_SCHEMA
Lorsque vous choisissez d'appliquer la configuration de manière anticipée, l'bigquery.datasets.getIamPolicy
autorisation est requise pour interroger la
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
vue.
Modifications apportées aux méthodes d'API
Après avoir choisi d'appliquer la configuration de manière anticipée, les méthodes d'ensemble de données de l'API REST v2 suivantes sont concernées.
Méthode datasets.get
La méthode datasets.get comporte
un paramètre de requête supplémentaire
nommé dataset_view.
Ce paramètre vous permet de mieux contrôler les informations renvoyées par la méthode datasets.get. Au lieu de toujours renvoyer à la fois les contrôles d'accès et les métadonnées, le paramètre dataset_view vous permet de spécifier si vous souhaitez renvoyer uniquement les métadonnées, uniquement les contrôles d'accès ou les deux.
Le champ access de la ressource d'ensemble de données
contient les contrôles d'accès de l'ensemble de données. Les autres champs tels que friendlyName, description et labels représentent les métadonnées de l'ensemble de données.
Le tableau suivant présente l'autorisation requise et la réponse de l'API pour les différentes valeurs acceptées par le paramètre dataset_view :
| Valeur du paramètre | Autorisations requises | Réponse de l'API |
|---|---|---|
DATASET_VIEW_UNSPECIFIED (ou vide) |
|
Valeur par défaut. Renvoie les métadonnées et les contrôles d'accès de l'ensemble de données. |
METADATA |
|
Renvoie les métadonnées de l'ensemble de données. |
ACL |
|
Renvoie les contrôles d'accès, les champs obligatoires et les champs de la ressource d'ensemble de données qui sont en sortie uniquement. |
FULL |
|
Renvoie les métadonnées et les contrôles d'accès de l'ensemble de données. |
Si vous ne choisissez pas d'appliquer la configuration de manière anticipée ou si vous revenez en arrière après avoir choisi de l'appliquer, vous pouvez utiliser le paramètre dataset_view avec les valeurs METADATA ou ACL. Les valeurs FULL et DATASET_VIEW_UNSPECIFIED (ou vide) reprennent le comportement précédent. L'autorisation bigquery.datasets.get vous permet d'obtenir à la fois les métadonnées et les contrôles d'accès.
Exemple
L'exemple suivant envoie une requête GET avec le paramètre dataset_view défini sur METADATA :
GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1Remplacez les éléments suivants :
- YOUR_PROJECT : nom de votre projet
- YOUR_DATASET : nom de l'ensemble de données
- YOUR_API_KEY : votre clé API
Méthode datasets.update
La méthode datasets.update
comporte un paramètre de requête
supplémentaire nommé update_mode.
Ce paramètre vous permet de mieux contrôler les champs mis à jour par la méthode datasets.update. Au lieu de toujours autoriser les mises à jour à la fois des contrôles d'accès et des métadonnées, le paramètre update_mode vous permet de spécifier si vous souhaitez mettre à jour uniquement les métadonnées, uniquement les contrôles d'accès ou les deux.
Le champ access de la ressource d'ensemble de données
contient les contrôles d'accès de l'ensemble de données. Les autres champs tels que friendlyName, description et labels représentent les métadonnées de l'ensemble de données.
Le tableau suivant présente l'autorisation requise et la réponse de l'API pour les différentes valeurs acceptées par le paramètre update_mode :
| Valeur du paramètre | Autorisations requises | Réponse de l'API |
|---|---|---|
UPDATE_MODE_UNSPECIFIED (ou vide) |
|
Valeur par défaut. Renvoie les métadonnées et les contrôles d'accès mis à jour de l'ensemble de données. |
UPDATE_METADATA |
|
Renvoie les métadonnées mises à jour de l'ensemble de données. |
UPDATE_ACL |
|
Renvoie les contrôles d'accès mis à jour, les champs obligatoires et les champs de la ressource d'ensemble de données qui sont en sortie uniquement. |
UPDATE_FULL |
|
Renvoie les métadonnées et les contrôles d'accès mis à jour de l'ensemble de données. |
Si vous ne choisissez pas d'appliquer la configuration de manière anticipée ou si vous revenez en arrière après avoir choisi de l'appliquer, BigQuery reprend le comportement précédent. L'autorisation bigquery.datasets.update vous permet de mettre à jour à la fois les métadonnées et les contrôles d'accès.
Exemple
L'exemple suivant envoie une requête PUT avec le paramètre update_mode défini sur METADATA :
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1Remplacez les éléments suivants :
- YOUR_PROJECT : nom de votre projet
- YOUR_DATASET : nom de l'ensemble de données
- YOUR_API_KEY : nom de votre clé API
Méthode datasets.patch
La méthode datasets.patch
comporte un paramètre de requête
supplémentaire nommé update_mode.
Ce paramètre vous permet de mieux contrôler les champs mis à jour par la méthode datasets.patch. Au lieu de toujours autoriser les mises à jour à la fois des contrôles d'accès et des métadonnées, le paramètre update_mode vous permet de spécifier si vous souhaitez mettre à jour uniquement les métadonnées, uniquement les contrôles d'accès ou les deux.
Le champ access de la ressource d'ensemble de données
contient les contrôles d'accès de l'ensemble de données. Les autres champs tels que friendlyName, description et labels représentent les métadonnées de l'ensemble de données.
Le tableau suivant présente l'autorisation requise et la réponse de l'API pour les différentes valeurs acceptées par le paramètre update_mode :
| Valeur du paramètre | Autorisations requises | Réponse de l'API |
|---|---|---|
UPDATE_MODE_UNSPECIFIED (ou vide) |
|
Valeur par défaut. Renvoie les métadonnées et les contrôles d'accès mis à jour de l'ensemble de données. |
UPDATE_METADATA |
|
Renvoie les métadonnées mises à jour de l'ensemble de données. |
UPDATE_ACL |
|
Renvoie les contrôles d'accès mis à jour, les champs obligatoires et les champs de la ressource d'ensemble de données qui sont en sortie uniquement. |
UPDATE_FULL |
|
Renvoie les métadonnées et les contrôles d'accès mis à jour de l'ensemble de données. |
Si vous ne choisissez pas d'appliquer la configuration de manière anticipée ou si vous revenez en arrière après avoir choisi de l'appliquer, BigQuery reprend le comportement précédent. L'autorisation bigquery.datasets.update vous permet de mettre à jour à la fois les métadonnées et les contrôles d'accès.
Exemple
L'exemple suivant envoie une requête PUT avec le paramètre update_mode défini sur METADATA :
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1Remplacez les éléments suivants :
- YOUR_PROJECT : nom de votre projet
- YOUR_DATASET : nom de l'ensemble de données
- YOUR_API_KEY : nom de votre clé API
Méthode datasets.insert
Si vous choisissez d'appliquer la configuration de manière anticipée et que vous utilisez la datasets.insert méthode,
pour créer un ensemble de données avec des contrôles d'accès, BigQuery vérifie
que les bigquery.datasets.create et bigquery.datasets.setIamPolicy
autorisations sont accordées à l'utilisateur.
Si vous utilisez l'API pour créer un ensemble de données sans contrôles d'accès, seule l'autorisation bigquery.datasets.create est requise.