Modifications apportées aux contrôles d'accès au niveau des ensembles de données
À partir du 15 septembre 2025, l'autorisation IAM (Identity and Access Management) bigquery.datasets.getIamPolicy
sera requise pour afficher les contrôles d'accès d'un ensemble de données et interroger la vue INFORMATION_SCHEMA.OBJECT_PRIVILEGES
. L'autorisation bigquery.datasets.setIamPolicy
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'aide de l'API.
Activer l'application anticipée
Avant le 15 septembre 2025, vous pouvez choisir d'appliquer les modifications des autorisations de manière anticipée. Lorsque vous activez cette option, 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 activer l'application anticipée, définissez le paramètre de configuration enable_fine_grained_dataset_acls_option
sur TRUE
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 vous 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'instruction LDD ALTER ORGANIZATION SET OPTIONS
.
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
Cette modification des autorisations requises a un impact sur les rôles personnalisés existants qui accordent les autorisations bigquery.datasets.get
, bigquery.datasets.create
ou bigquery.datasets.update
, mais pas les autorisations bigquery.datasets.getIamPolicy
ou bigquery.datasets.setIamPolicy
.
Tous les rôles personnalisés qui n'incluent que l'autorisation bigquery.datasets.get
, bigquery.datasets.update
ou bigquery.datasets.create
devront être mis à jour pour inclure l'autorisation bigquery.datasets.getIamPolicy
ou bigquery.datasets.setIamPolicy
d'ici le 15 septembre 2025 si vous souhaitez conserver la fonctionnalité existante des rôles personnalisés. Si vos rôles personnalisés n'ont besoin que d'afficher ou de modifier 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 ce changement. 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 activez l'application anticipée, les commandes d'outil bq suivantes sont concernées.
bq show
Vous pouvez utiliser la commande bq show
avec l'option suivante :
--dataset_view={METADATA|ACL|FULL}
- Indique comment appliquer les autorisations lorsque vous consultez les contrôles d'accès ou les métadonnées d'un ensemble de données.
Utilisez l'une des valeurs suivantes :
METADATA
: afficher uniquement les métadonnées de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.get
.ACL
: affichez uniquement les contrôles d'accès de l'ensemble de données. Cette valeur nécessite l'autorisationbigquery.datasets.getIamPolicy
.FULL
: affichez les métadonnées et les contrôles d'accès de l'ensemble de données. Cette valeur nécessite les autorisationsbigquery.datasets.get
etbigquery.datasets.getIamPolicy
.
bq update
Vous pouvez utiliser la commande bq update
avec l'option suivante :
--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}
- Indique 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
: mettez à jour les métadonnées et les contrôles d'accès de l'ensemble de données. Cette valeur nécessite les autorisationsbigquery.datasets.update
etbigquery.datasets.setIamPolicy
.
Modifications apportées aux instructions du langage de contrôle des données (LCD)
Lorsque vous activez l'application anticipée, les autorisations suivantes sont requises pour exécuter les instructions GRANT
et REVOKE
sur les ensembles de données à l'aide du langage de contrôle des données (LCD) :
bigquery.datasets.setIamPolicy
Modifications apportées aux requêtes d'affichage INFORMATION_SCHEMA
Lorsque vous activez l'application anticipée, l'autorisation bigquery.datasets.getIamPolicy
est requise pour interroger la vue INFORMATION_SCHEMA.OBJECT_PRIVILEGES
.
Modifications apportées aux méthodes API
Une fois que vous avez activé l'application 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 chemin d'accès 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 indique 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 | les autorisations requises pour l'extension ; | 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 en lecture seule de la ressource "ensemble de données". |
FULL |
|
Renvoie les métadonnées et les contrôles d'accès de l'ensemble de données. |
Si vous n'activez pas l'application anticipée ou si vous la désactivez après l'avoir activée, vous pouvez utiliser le paramètre dataset_view
avec les valeurs METADATA
ou ACL
. Les valeurs FULL
et DATASET_VIEW_UNSPECIFIED
(ou vide) sont définies par défaut sur 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.1
Remplacez 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 chemin d'accès supplémentaire nommé update_mode
.
Ce paramètre vous permet de mieux contrôler les champs mis à jour par la méthode datasets.update
. Plutôt que d'autoriser systématiquement les mises à jour 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 indique 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 | les autorisations requises pour l'extension ; | 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 de l'ensemble de données, les champs obligatoires et les champs en sortie seule de la ressource de l'ensemble de données. |
UPDATE_FULL |
|
Renvoie les métadonnées et les contrôles d'accès mis à jour de l'ensemble de données. |
Si vous n'activez pas l'application anticipée ou si vous la désactivez après l'avoir activée, BigQuery revient au comportement précédent. L'autorisation bigquery.datasets.update
vous permet de mettre à jour 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.1
Remplacez 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 chemin d'accès supplémentaire nommé update_mode
.
Ce paramètre vous permet de mieux contrôler les champs mis à jour par la méthode datasets.patch
. Plutôt que d'autoriser systématiquement les mises à jour 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 indique 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 | les autorisations requises pour l'extension ; | 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 de l'ensemble de données, les champs obligatoires et les champs en sortie seule de la ressource de l'ensemble de données. |
UPDATE_FULL |
|
Renvoie les métadonnées et les contrôles d'accès mis à jour de l'ensemble de données. |
Si vous n'activez pas l'application anticipée ou si vous la désactivez après l'avoir activée, BigQuery revient au comportement précédent. L'autorisation bigquery.datasets.update
vous permet de mettre à jour 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.1
Remplacez 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 activez l'application anticipée et utilisez la méthode datasets.insert
pour créer un ensemble de données avec des contrôles d'accès, BigQuery vérifie que les autorisations bigquery.datasets.create
et bigquery.datasets.setIamPolicy
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.