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'autorisation bigquery.datasets.get.
  • ACL : affichez uniquement les contrôles d'accès de l'ensemble de données. Cette valeur nécessite l'autorisation bigquery.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 autorisations bigquery.datasets.get et bigquery.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'autorisation bigquery.datasets.update.
  • UPDATE_ACL : met à jour uniquement les contrôles d'accès de l'ensemble de données. Cette valeur nécessite l'autorisation bigquery.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 autorisations bigquery.datasets.update et bigquery.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)
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
Valeur par défaut. Renvoie les métadonnées et les contrôles d'accès de l'ensemble de données.
METADATA
  • bigquery.datasets.get
Renvoie les métadonnées de l'ensemble de données.
ACL
  • bigquery.datasets.getIamPolicy
Renvoie les contrôles d'accès, les champs obligatoires et les champs en lecture seule de la ressource "ensemble de données".
FULL
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
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)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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
  • bigquery.datasets.update
Renvoie les métadonnées mises à jour de l'ensemble de données.
UPDATE_ACL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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
  • bigquery.datasets.update
Renvoie les métadonnées mises à jour de l'ensemble de données.
UPDATE_ACL
  • bigquery.datasets.setIamPolicy
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
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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.