Änderungen an Zugriffssteuerungen auf Dataset-Ebene

Ab dem 15. September 2025 ist die IAM-Berechtigung (Identity and Access Management) bigquery.datasets.getIamPolicy erforderlich, um die Zugriffssteuerung eines Datensatzes aufzurufen und die Ansicht INFORMATION_SCHEMA.OBJECT_PRIVILEGES abzufragen. Die Berechtigung bigquery.datasets.setIamPolicy ist erforderlich, um die Zugriffssteuerungen eines Datasets zu aktualisieren oder ein Dataset mit Zugriffssteuerungen mithilfe der API zu erstellen.

Vorzeitige Durchsetzung aktivieren

Bis zum 15. September 2025 können Sie die frühzeitige Durchsetzung der Berechtigungsänderungen aktivieren. Wenn Sie die Funktion aktivieren, ist die Berechtigung bigquery.datasets.getIamPolicy erforderlich, um die Zugriffssteuerungen eines Datasets abzurufen. Die Berechtigung bigquery.datasets.setIamPolicy ist erforderlich, um die Zugriffssteuerungen eines Datasets zu aktualisieren oder mit der API ein Dataset mit Zugriffssteuerungen zu erstellen.

Wenn Sie die frühzeitige Erzwingung aktivieren möchten, legen Sie die Konfigurationseinstellung enable_fine_grained_dataset_acls_option auf TRUE auf Organisations- oder Projektebene fest. Eine Anleitung zum Aktivieren von Konfigurationseinstellungen finden Sie unter Konfigurationseinstellungen verwalten.

Beispiele für Konfigurationseinstellungen

In den folgenden Beispielen wird gezeigt, wie die Konfigurationseinstellung enable_fine_grained_dataset_acls_option festgelegt und entfernt wird.

Organisationseinstellungen konfigurieren

Mit der DDL-Anweisung ALTER ORGANIZATION SET OPTIONS können Sie die Organisationseinstellungen konfigurieren. Im folgenden Beispiel wird enable_fine_grained_dataset_acls_option auf TRUE auf Organisationsebene festgelegt:

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

Ersetzen Sie REGION durch die Region, die mit Ihrer Organisation verknüpft ist, z. B. us oder europe-west6.

Im folgenden Beispiel wird die Einstellung enable_fine_grained_dataset_acls_option auf Organisationsebene gelöscht:

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

Projekteinstellungen konfigurieren

Mit der DDL-Anweisung ALTER PROJECT SET OPTIONS können Sie Projekteinstellungen konfigurieren. Die DDL-Anweisung ALTER PROJECT SET OPTIONS akzeptiert optional die Variable project_id. Wenn project_id nicht angegeben ist, wird standardmäßig das aktuelle Projekt verwendet, in dem die Abfrage ausgeführt wird.

Im folgenden Beispiel wird für enable_fine_grained_dataset_acls_option der Wert TRUE festgelegt.

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Im folgenden Beispiel wird die Einstellung enable_fine_grained_dataset_acls_option auf Projektebene gelöscht:

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

Änderungen an benutzerdefinierten Rollen

Diese Änderung an den erforderlichen Berechtigungen wirkt sich auf bestehende benutzerdefinierte Rollen aus, die die Berechtigungen bigquery.datasets.get, bigquery.datasets.create oder bigquery.datasets.update gewähren, aber nicht die Berechtigungen bigquery.datasets.getIamPolicy oder bigquery.datasets.setIamPolicy.

Alle benutzerdefinierten Rollen, die nur die Berechtigung bigquery.datasets.get, bigquery.datasets.update oder bigquery.datasets.create enthalten, müssen bis zum 15. September 2025 um die Berechtigung bigquery.datasets.getIamPolicy oder bigquery.datasets.setIamPolicy ergänzt werden, wenn Sie die vorhandenen Funktionen der benutzerdefinierten Rollen beibehalten möchten. Wenn Nutzer mit Ihren benutzerdefinierten Rollen nur die Metadaten eines Datensatzes ansehen oder aktualisieren sollen, verwenden Sie die neuen Parameter dataset_view und update_mode.

Vordefinierte BigQuery-Rollen sind von dieser Änderung nicht betroffen. Alle vordefinierten Rollen, die die Berechtigung bigquery.datasets.get gewähren, gewähren auch die Berechtigung bigquery.datasets.getIamPolicy. Alle vordefinierten Rollen, die die Berechtigung bigquery.datasets.update gewähren, gewähren auch die Berechtigung bigquery.datasets.setIamPolicy.

Änderungen an den Befehlen des bq-Befehlszeilentools

Wenn Sie die frühzeitige Erzwingung aktivieren, sind die folgenden bq-Befehle betroffen.

bq show

Verwenden Sie den Befehl bq show mit dem folgenden Flag:

--dataset_view={METADATA|ACL|FULL}
Gibt an, wie Berechtigungen angewendet werden, wenn Sie sich die Zugriffssteuerungen oder Metadaten eines Datensatzes ansehen. Verwenden Sie einen der folgenden Werte:
  • METADATA: Sie können nur die Metadaten des Datensatzes aufrufen. Für diesen Wert ist die Berechtigung bigquery.datasets.get erforderlich.
  • ACL: nur die Zugriffssteuerungen des Datensatzes ansehen. Für diesen Wert ist die Berechtigung bigquery.datasets.getIamPolicy erforderlich.
  • FULL: Sie können sowohl die Metadaten als auch die Zugriffssteuerung des Datensatzes aufrufen. Für diesen Wert sind die Berechtigungen bigquery.datasets.get und bigquery.datasets.getIamPolicy erforderlich.

bq update

Verwenden Sie den Befehl bq update mit dem folgenden Flag:

--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}
Gibt an, wie Berechtigungen angewendet werden, wenn Sie die Zugriffssteuerungen oder Metadaten eines Datensatzes aktualisieren. Verwenden Sie einen der folgenden Werte:
  • UPDATE_METADATA: nur die Metadaten des Datensatzes aktualisieren. Für diesen Wert ist die Berechtigung bigquery.datasets.update erforderlich.
  • UPDATE_ACL: nur die Zugriffssteuerungen des Datensatzes aktualisieren. Für diesen Wert ist die Berechtigung bigquery.datasets.setIamPolicy erforderlich.
  • UPDATE_FULL: Aktualisieren Sie sowohl die Metadaten als auch die Zugriffssteuerungen des Datensatzes. Für diesen Wert sind die Berechtigungen bigquery.datasets.update und bigquery.datasets.setIamPolicy erforderlich.

Änderungen an DCL-Anweisungen (Data Control Language)

Wenn Sie die frühzeitige Erzwingung aktivieren, sind die folgenden Berechtigungen erforderlich, um GRANT- und REVOKE-Anweisungen in Datasets mithilfe der Datenkontrollsprache (DCL) auszuführen:

  • bigquery.datasets.setIamPolicy

Änderungen an INFORMATION_SCHEMA-Ansichtsanfragen

Wenn Sie die frühzeitige Erzwingung aktivieren, ist die Berechtigung bigquery.datasets.getIamPolicy erforderlich, um die Ansicht INFORMATION_SCHEMA.OBJECT_PRIVILEGES abzufragen.

Änderungen an API-Methoden

Wenn Sie die frühzeitige Erzwingung aktivieren, sind die folgenden Dataset-Methoden der REST v2 API betroffen.

datasets.get-Methode

Die Methode datasets.get hat einen zusätzlichen Pfadparameter namens dataset_view.

Mit diesem Parameter haben Sie mehr Kontrolle über die von der Methode datasets.get zurückgegebenen Informationen. Anstatt immer sowohl Zugriffssteuerungen als auch Metadaten zurückzugeben, können Sie mit dem Parameter dataset_view angeben, ob nur Metadaten, nur Zugriffssteuerungen oder beides zurückgegeben werden soll.

Das Feld access in der Dataset-Ressource enthält die Zugriffssteuerungen des Datasets. Die anderen Felder wie friendlyName, description und labels stellen die Metadaten des Datensatzes dar.

In der folgenden Tabelle sind die erforderliche Berechtigung und die API-Antwort für die verschiedenen vom Parameter dataset_view unterstützten Werte aufgeführt:

Parameterwert Erforderliche Berechtigungen API-Antwort
DATASET_VIEW_UNSPECIFIED (oder leer)
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
Der Standardwert. Gibt die Metadaten und Zugriffssteuerungen des Datensatzes zurück.
METADATA
  • bigquery.datasets.get
Gibt die Metadaten des Datensatzes zurück.
ACL
  • bigquery.datasets.getIamPolicy
Gibt die Zugriffssteuerungen, erforderlichen Felder und Felder in der Datensatzressource zurück, die nur ausgegeben werden.
FULL
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
Gibt die Metadaten und Zugriffssteuerungen des Datensatzes zurück.

Wenn Sie die frühzeitige Durchsetzung nicht aktivieren oder sie nach der Aktivierung deaktivieren, können Sie den Parameter dataset_view mit den Werten METADATA oder ACL verwenden. Die Werte FULL und DATASET_VIEW_UNSPECIFIED (oder leer) entsprechen dem bisherigen Verhalten. Mit der Berechtigung bigquery.datasets.get können Sie sowohl Metadaten als auch Zugriffssteuerungen abrufen.

Beispiel

Im folgenden Beispiel wird eine GET-Anfrage gesendet, bei der der Parameter dataset_view auf METADATA festgelegt ist:

GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1

Ersetzen Sie Folgendes:

  • YOUR_PROJECT: Name Ihres Projekts
  • YOUR_DATASET: der Name des Datasets
  • YOUR_API_KEY: Ihr API-Schlüssel

datasets.update-Methode

Die Methode datasets.update hat einen zusätzlichen Pfadparameter namens update_mode.

Mit diesem Parameter haben Sie mehr Kontrolle über die Felder, die mit der Methode datasets.update aktualisiert werden. Anstatt immer Aktualisierungen sowohl für Zugriffssteuerungen als auch für Metadaten zuzulassen, können Sie mit dem Parameter update_mode angeben, ob nur Metadaten, nur Zugriffssteuerungen oder beides aktualisiert werden soll.

Das Feld access in der Dataset-Ressource enthält die Zugriffssteuerungen des Datasets. Die anderen Felder wie friendlyName, description und labels stellen die Metadaten des Datensatzes dar.

In der folgenden Tabelle sind die erforderliche Berechtigung und die API-Antwort für die verschiedenen vom Parameter update_mode unterstützten Werte aufgeführt:

Parameterwert Erforderliche Berechtigungen API-Antwort
UPDATE_MODE_UNSPECIFIED (oder leer)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Der Standardwert. Die aktualisierten Metadaten und Zugriffssteuerungen des Datensatzes werden zurückgegeben.
UPDATE_METADATA
  • bigquery.datasets.update
Gibt die aktualisierten Metadaten des Datensatzes zurück.
UPDATE_ACL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Gibt die aktualisierten Zugriffssteuerungen, Pflichtfelder und Felder in der Datensatzressource zurück, die nur für die Ausgabe verwendet werden.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Die aktualisierten Metadaten und Zugriffssteuerungen des Datensatzes werden zurückgegeben.

Wenn Sie die frühzeitige Erzwingung nicht aktivieren oder sie nach der Aktivierung deaktivieren, wird in BigQuery standardmäßig das vorherige Verhalten verwendet. Mit der Berechtigung bigquery.datasets.update können Sie sowohl Metadaten als auch Zugriffssteuerungen aktualisieren.

Beispiel

Im folgenden Beispiel wird eine PUT-Anfrage gesendet, bei der der Parameter update_mode auf METADATA festgelegt ist:

PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1

Ersetzen Sie Folgendes:

  • YOUR_PROJECT: Name Ihres Projekts
  • YOUR_DATASET: der Name des Datasets
  • YOUR_API_KEY: Name Ihres API-Schlüssels

datasets.patch-Methode

Die Methode datasets.patch hat einen zusätzlichen Pfadparameter namens update_mode.

Mit diesem Parameter haben Sie mehr Kontrolle über die Felder, die mit der Methode datasets.patch aktualisiert werden. Anstatt immer Aktualisierungen sowohl für Zugriffssteuerungen als auch für Metadaten zuzulassen, können Sie mit dem Parameter update_mode angeben, ob nur Metadaten, nur Zugriffssteuerungen oder beides aktualisiert werden soll.

Das Feld access in der Dataset-Ressource enthält die Zugriffssteuerungen des Datasets. Die anderen Felder wie friendlyName, description und labels stellen die Metadaten des Datensatzes dar.

In der folgenden Tabelle sind die erforderliche Berechtigung und die API-Antwort für die verschiedenen vom Parameter update_mode unterstützten Werte aufgeführt:

Parameterwert Erforderliche Berechtigungen API-Antwort
UPDATE_MODE_UNSPECIFIED (oder leer)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Der Standardwert. Die aktualisierten Metadaten und Zugriffssteuerungen des Datensatzes werden zurückgegeben.
UPDATE_METADATA
  • bigquery.datasets.update
Gibt die aktualisierten Metadaten des Datensatzes zurück.
UPDATE_ACL
  • bigquery.datasets.setIamPolicy
Gibt die aktualisierten Zugriffssteuerungen, Pflichtfelder und Felder in der Datensatzressource zurück, die nur für die Ausgabe verwendet werden.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Die aktualisierten Metadaten und Zugriffssteuerungen des Datensatzes werden zurückgegeben.

Wenn Sie die frühzeitige Erzwingung nicht aktivieren oder sie nach der Aktivierung deaktivieren, wird in BigQuery standardmäßig das vorherige Verhalten verwendet. Mit der Berechtigung bigquery.datasets.update können Sie sowohl Metadaten als auch Zugriffssteuerungen aktualisieren.

Beispiel

Im folgenden Beispiel wird eine PUT-Anfrage gesendet, bei der der Parameter update_mode auf METADATA festgelegt ist:

PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1

Ersetzen Sie Folgendes:

  • YOUR_PROJECT: Name Ihres Projekts
  • YOUR_DATASET: der Name des Datasets
  • YOUR_API_KEY: Name Ihres API-Schlüssels

Methode „datasets.insert“

Wenn Sie die frühzeitige Erzwingung aktivieren und die datasets.insert-Methode verwenden, um ein Dataset mit Zugriffssteuerungen zu erstellen, wird in BigQuery geprüft, ob dem Nutzer die Berechtigungen bigquery.datasets.create und bigquery.datasets.setIamPolicy gewährt wurden.

Wenn Sie mit der API ein Dataset ohne Zugriffssteuerungen erstellen, ist nur die Berechtigung bigquery.datasets.create erforderlich.