Autorisierte Ansichten
In diesem Dokument wird beschrieben, wie Sie autorisierte Ansichten und autorisierte materialisierte Ansichten in BigQuery erstellen. Als Datenadministrator können Sie eine autorisierte Ansicht erstellen, um eine Teilmenge der Daten in einem Dataset für bestimmte Nutzer und Gruppen (Principals) freizugeben. Principals können die von Ihnen freigegebenen Daten ansehen und Abfragen darauf ausführen, aber nicht direkt auf das Quell-Dataset zugreifen.
Ansichtstypen
Eine logische Ansicht ist der Standardansichtstyp für BigQuery. Eine materialisierte Ansicht ist eine vorab berechnete Ansicht, die die Ergebnisse einer Abfrage regelmäßig im Cache speichert, um die Leistung und Effizienz zu steigern.
Eine autorisierte Ansicht für eine logische Ansicht wird als autorisierte Ansicht bezeichnet, eine autorisierte Ansicht für eine materialisierte Ansicht als autorisierte materialisierte Ansicht.
Wenn eine logische Ansicht auf einer großen oder rechenintensiven Abfrage basiert, können Sie stattdessen eine materialisierte Ansicht erstellen. Informationen zu den Anwendungsfällen für logische und materialisierte Ansichten finden Sie unter Übersicht über logische und materialisierte Ansichten.
Allgemeine Schritte zum Erstellen autorisierter Ansichten
Wenn Sie eine Ansicht erstellen und freigeben möchten, sehen Sie sich diese allgemeinen Schritte an. Sie sind für autorisierte logische Ansichten und autorisierte materialisierte Ansichten gleich.
- Erstellen Sie ein Dataset, das Ihre Quelldaten enthält.
- Führen Sie eine Abfrage aus, um Daten in eine Zieltabellen im Quell-Dataset zu laden.
- Erstellen Sie ein Dataset, das Ihre autorisierte Ansicht enthält.
- Erstellen Sie eine autorisierte Ansicht aus einer SQL-Abfrage, die die Spalten einschränkt, die Ihre Datenanalysten in den Abfrageergebnissen sehen können.
- Erteilen Sie Ihren Datenanalysten die Berechtigung zum Ausführen von Abfragejobs.
- Gewähren Sie Ihren Datenanalysten Zugriff auf das Dataset, das die autorisierte Ansicht enthält.
- Gewähren Sie der autorisierten Ansicht Lesezugriff auf das Quell-Dataset.
Alternativen
Autorisierte Ansichten sind zwar flexibel und skalierbar, aber möglicherweise ist eine der folgenden Methoden besser für Ihren Anwendungsfall geeignet:
- Richtlinien auf Zeilenebene für eine Tabelle festlegen.
- Richtlinien auf Spaltenebene für eine Tabelle festlegen.
- Daten in einer separaten Tabelle speichern.
- Alle Ansichten in einem Dataset freigeben (autorisierte Datasets).
Sicherheit auf Zeilen- oder Spaltenebene oder separate Tabellen verwenden
Durch das Festlegen von Zugriffsrichtlinien auf Zeilenebene für eine Tabelle oder durch das Erstellen einer separaten Tabelle für vertrauliche Daten kann ein Datenadministrator die Möglichkeit eines Nutzers einschränken, diese Daten anzusehen. Wenn Sie Daten in einer separaten Tabelle speichern, werden die Daten isoliert und die Möglichkeit entfernt, zu sehen, wie viele Zeilen in der Tabelle vorhanden sind.
Darüber hinaus kann ein Datenadministrator durch das Erstellen und Anwenden von Richtlinien-Tags die Möglichkeit des Nutzers einschränken, Spalten in einer Tabelle anzusehen.
Das Speichern von Daten in einer separaten Tabelle ist die sicherste, aber am wenigsten flexible Methode. Das Festlegen von Richtlinien auf Zeilenebene ist flexibel und sicher, während die Freigabe autorisierter Ansichten flexibel ist und die beste Leistung bietet.
Einen detaillierten Vergleich dieser Methoden finden Sie in den folgenden Ressourcen:
- Vergleich von autorisierten Ansichten, Sicherheit auf Zeilenebene und separaten Tabellen
- Einführung in die Sicherheit auf Zeilenebene
- Beispielanwendungsfälle für die Sicherheit auf Zeilenebene
- Einführung in die Zugriffssteuerung auf Spaltenebene
Alle Ansichten in einem Dataset freigeben
Wenn Sie einer Sammlung von Ansichten Zugriff auf ein Dataset gewähren möchten, ohne jede einzelne Ansicht autorisieren zu müssen, können Sie die Ansichten in einem Dataset gruppieren und dann dem Dataset, das die Ansichten enthält, Zugriff auf das Dataset gewähren, das die Daten enthält.
Sie können Principals dann nach Bedarf Zugriff auf das Dataset mit der Gruppe von Ansichten oder auf einzelne Ansichten im Dataset gewähren. Ein Dataset, das Zugriff auf ein anderes Dataset hat, wird als autorisiertes Dataset bezeichnet. Das Dataset, das ein anderes Dataset zum Zugriff auf seine Daten autorisiert, wird als freigegebenes Dataset bezeichnet.
Die Access Control List eines Datasets kann insgesamt bis zu 2.500 autorisierte Ressourcen enthalten, einschließlich autorisierter Ansichten, autorisierter Datasets, und autorisierter Funktionen. Wenn Sie dieses Limit aufgrund einer großen Anzahl autorisierter Ansichten überschreiten, sollten Sie die Ansichten in autorisierten Datasets gruppieren. Als Best Practice sollten Sie verwandte Ansichten in autorisierten Datasets gruppieren, wenn Sie neue BigQuery-Architekturen entwerfen, insbesondere Architekturen mit mehreren Mandanten.
Weitere Informationen finden Sie unter Autorisierte Datasets und Dataset autorisieren.
Beschränkungen
- Wenn Sie eine autorisierte Ansicht oder eine autorisierte materialisierte Ansicht in einem anderen Dataset erstellen, müssen sich sowohl das Quelldaten- als auch das autorisierte Ansichts-Dataset am selben regionalen Standort befinden.
- Wenn Sie eine autorisierte Ansicht löschen, kann es bis zu 24 Stunden dauern, bis sie aus der Liste der Ansichten entfernt wird. Während dieser Zeit können Sie nicht auf die autorisierte Ansicht zugreifen. Die gelöschte autorisierte Ansicht kann jedoch in der Liste der Ansichten angezeigt werden und wird auf das Limit für autorisierte Ansichten angerechnet. Dieses Limit kann das Erstellen zusätzlicher autorisierter Ansichten verhindern, wenn die neue autorisierte Ansicht dieses Limit überschreitet.
Hinweis
Weisen Sie IAM-Rollen (Identity and Access Management) zu die Nutzern die erforderlichen Berechtigungen gewähren zum Abfragen der von Ihnen freigegebenen autorisierten Ansichten oder autorisierten materialisierten Ansichten.
Autorisierte Ansichten und VPC Service Controls
Wenn Sie autorisierte Ansichten in einem VPC Service Controls-Perimeter verwenden, müssen die Eingangsregeln, die Principals Zugriff auf das Projekt mit der Ansicht gewähren, auch Zugriff auf alle Projekte enthalten, die die Quelldaten enthalten, aus denen die Ansicht Daten abruft. Der Principal benötigt keine IAM-Berechtigungen (Identity and Access Management) für die Quelldatenprojekte. Die Eingangsregel muss jedoch zusätzlich zum Projekt mit der Ansicht Zugriff auf BigQuery im Quelldatenprojekt zulassen.
Erforderliche Rollen
Zum Erstellen oder Aktualisieren einer autorisierten Ansicht benötigen Sie Berechtigungen für das Dataset, das die Ansicht enthält, und für das Dataset, das Zugriff auf die Ansicht gewährt.
Sie müssen Nutzern oder Gruppen auch Zugriff auf das Projekt und das Dataset gewähren, die die Ansicht enthalten.
Berechtigungen für das Dataset, das die Ansicht enthält
Ansichten werden in BigQuery als Tabellenressourcen behandelt. Daher sind für das Erstellen einer Ansicht dieselben Berechtigungen erforderlich wie für das Erstellen einer Tabelle. Sie benötigen außerdem Berechtigungen zum Abfragen aller Tabellen, auf die die SQL-Abfrage der Ansicht verweist.
- Zum Erstellen eines Datasets benötigen Sie die IAM-Berechtigung
bigquery.datasets.createfür das Projekt. - Zum Erstellen einer Ansicht benötigen Sie die IAM-Berechtigung
bigquery.tables.createfür das Dataset. Die vordefinierte IAM-Rolleroles/bigquery.dataEditorenthält die Berechtigungen, die Sie zum Erstellen einer Ansicht benötigen. - Wenn Sie eine Ansicht erstellen möchten, die eine Tabelle abfragt, auf die Sie keinen Zugriff haben, müssen Sie die Berechtigung
bigquery.tables.getDatafür die Tabelle erhalten, die von der Ansicht abgefragt wird.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Berechtigungen für das Dataset, das die Quelldaten enthält
Zum Autorisieren einer Ansicht werden der Ansicht Leseberechtigungen für das Dataset mit den Quelldaten gewährt.
Für diese Autorisierung benötigen Sie die folgenden Berechtigungen für das Dataset, das die Quelldaten enthält:
bigquery.datasets.updatedatasets.getIamPolicydatasets.setIamPolicy
Weitere Berechtigungen, die zum Aktualisieren von Datasets erforderlich sind, finden Sie unter den erforderlichen Berechtigungen.
Nutzerberechtigungen für das Projekt und das Dataset für die Ansicht
Wenn Sie eine autorisierte Ansicht für Nutzer oder Gruppen freigeben möchten, müssen Sie den Nutzern oder Gruppen die folgenden IAM-Berechtigungen gewähren:
Die IAM-Rolle
roles/bigquery.jobUser(oderroles/bigquery.user) für das Projekt, in dem der Abfragejob ausgeführt wird (das Abrechnungs- oder Ausführungsprojekt). Diese Rolle gewährt die Berechtigungbigquery.jobs.create, die zum Ausführen von Abfragejobs für die Ansicht erforderlich ist.Die IAM-Rolle
roles/bigquery.jobUserist nur für das Projekt erforderlich, in dem Sie den Job ausführen möchten, unabhängig davon, wo die Ansicht gehostet wird.Die IAM-Rolle
roles/bigquery.dataViewerfür das Dataset, das die autorisierte Ansicht enthält. Diese Rolle gewährt die Berechtigungbigquery.tables.getData, die zum Abfragen der Ansicht erforderlich ist.Wenn ein Nutzer die autorisierte Ansicht aus einem separaten Projekt abfragt, benötigt er die Rolle
roles/bigquery.jobUsernicht für das Projekt, in dem die Ansicht gehostet wird. Er benötigt die Rolleroles/bigquery.dataViewerfür das Dataset, das die Ansicht enthält, und die Rolleroles/bigquery.jobUserfür das Projekt, in dem die Abfrage ausgeführt wird.
Mit autorisierten Ansichten arbeiten
In den folgenden Abschnitten wird beschrieben, wie Sie mit autorisierten Ansichten und autorisierten materialisierten Ansichten arbeiten.
Autorisierte Ansicht erstellen
Wählen Sie eine der folgenden Optionen aus, um eine autorisierte Ansicht zu erstellen. Eine vollständige Anleitung zum Autorisieren, Freigeben und Löschen einer autorisierten Ansicht finden Sie in der Anleitung Autorisierte Ansicht erstellen.
Console
Rufen Sie die Seite BigQuery auf.
Geben Sie im Abfrageeditor die Abfrage ein, auf der die autorisierte Ansicht basieren soll.
Klicken Sie auf Speichern > Ansicht speichern.
Gehen Sie im Dialogfeld Ansicht speichern so vor:
Geben Sie unter Projekt das Projekt ein, in dem die Ansicht gespeichert werden soll.
Geben Sie unter Dataset das Dataset ein, in dem die Ansicht gespeichert werden soll. Dies muss ein anderes Dataset als das in der Quellabfrage verwendete Dataset sein.
Geben Sie unter Tabelle den Namen der Ansicht ein.
Klicken Sie auf Speichern.
Wählen Sie im Bereich Explorer das Dataset aus, das in der Quellabfrage verwendet wurde.
Klicken Sie im Bereich Details auf Freigabe > Ansichten autorisieren.
Geben Sie im Bereich Autorisierte Ansichten unter Autorisierte Ansicht den voll qualifizierten Namen der Ansicht im Format PROJECT_ID.DATASET_ID.VIEW_NAME ein.
Klicken Sie auf Autorisierung hinzufügen.
Terraform
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Standard Google Cloud projekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tfhaben, z. B.main.tf. In dieser Anleitung wird die Datei alsmain.tfbezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgradeein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yesan der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen dass Terraform sie erstellt oder aktualisiert hat.
Nutzer oder Gruppen für autorisierte Ansichten verwalten
Nachdem Sie eine Ansicht autorisiert haben, können Sie den Zugriff darauf verwalten, indem Sie die folgenden Aufgaben für ein Dataset, eine Tabelle oder eine Ansicht ausführen:
- Zugriffsrichtlinie aufrufen.
- Zugriff gewähren.
- Zugriff widerrufen.
- Zugriff verweigern.
Weitere Informationen finden Sie unter Zugriff auf Ressourcen mit IAM steuern.
Autorisierung für eine Ansicht entfernen
Wählen Sie eine der folgenden Optionen aus, um die Autorisierung für eine Ansicht zu entfernen:
Console
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im linken Bereich auf Explorer:

Wenn der linke Bereich nicht angezeigt wird, klicken Sie auf Linken Bereich maximieren, um ihn zu öffnen.
Maximieren Sie im Bereich Explorer Ihr Projekt, klicken Sie auf Datasets und wählen Sie dann ein Dataset aus.
Klicken Sie auf Übersicht > Tabellen und wählen Sie dann eine Tabelle aus.
Klicken Sie auf Freigabe > Ansichten autorisieren.
Klicken Sie auf um die Autorisierung zu entfernen.
Klicken Sie auf Schließen.
bq
Verwenden Sie den Befehl bq rm, um die Autorisierung für eine Ansicht zu entfernen. Geben Sie die table_id für die Ansicht ein, für die Sie die Autorisierung entfernen möchten.
bq rm \ project_id:dataset:table_id
API
Rufen Sie die tables.delete
Methode auf und verwenden Sie die projectID,datasetID, und tableID Attribute, um
die autorisierte Ansicht für Ihr Dataset zu entfernen. Weitere Informationen finden Sie unter
Tabellen.
Kontingente und Limits
- Autorisierte Ansichten unterliegen den Dataset-Limits. Weitere Informationen finden Sie unter Dataset-Limits.
- Wenn Sie eine autorisierte Ansicht entfernen, kann es bis zu 24 Stunden dauern, bis alle Verweise auf die Ansicht aus dem System entfernt sind. Um Fehler zu vermeiden, warten Sie entweder 24 Stunden, bevor Sie den Namen einer entfernten Ansicht wiederverwenden, oder erstellen Sie einen eindeutigen Namen für Ihre Ansicht.
Themen für Fortgeschrittene
In den folgenden Abschnitten werden erweiterte Methoden zur Verwendung autorisierter Ansichten beschrieben.
Sicherheit auf Zeilenebene mit autorisierten Ansichten kombinieren
Die in einer logischen Ansicht oder einer materialisierten Ansicht angezeigten Daten werden entsprechend den Zugriffsrichtlinien der zugrunde liegenden Quelltabelle gefiltert.
Weitere Informationen zur Interaktion der Sicherheit auf Zeilenebene mit materialisierten Ansichten finden Sie unter Sicherheit auf Zeilenebene mit anderen BigQuery-Features verwenden.
Sicherheit auf Spaltenebene mit autorisierten Ansichten kombinieren
Die Auswirkung der Sicherheit auf Spaltenebene im Hinblick auf eine Datenansicht ist unabhängig davon, ob es sich dabei um eine autorisierte Datenansicht handelt.
Eine detaillierte Beschreibung der Anwendung von Berechtigungen finden Sie unter Ansichten auf Sicherheit auf Spaltenebene abfragen.
BigQuery Sharing mit autorisierten Ansichten verwenden
BigQuery Sharing (früher Analytics Hub) ist eine Datenpoolplattform mit den folgenden Funktionen:
- Sie können Daten und Statistiken in großem Umfang über Organisationsgrenzen hinweg teilen.
- Verwendet ein robustes Sicherheits- und Datenschutz-Framework.
- Unterstützt die Veröffentlichung eines BigQuery-Datasets, das als freigegebenes Dataset bezeichnet wird, sowie der zugehörigen autorisierten Ansichten und autorisierten Datasets für eine Reihe von Abonnenten.
Ein verknüpftes Dataset ist ein schreibgeschütztes BigQuery-Dataset, das als Verweis auf ein freigegebenes Dataset dient. Wenn Sie einen Eintrag in BigQuery Sharing abonnieren, wird ein verknüpftes Dataset in Ihrem Projekt und keine Kopie des Datasets erstellt, sodass Abonnenten die Daten lesen, aber keine Objekte darin hinzufügen oder aktualisieren können.
Materialisierte Ansichten, die auf Tabellen im verknüpften Dataset verweisen, werden nicht unterstützt.
Weitere Informationen finden Sie unter Einführung in BigQuery Sharing.
Nächste Schritte
- Eine Anleitung zum Erstellen einer autorisierten Ansicht finden Sie unter Autorisierte Ansicht erstellen.
- Informationen zum Erstellen einer logischen Ansicht finden Sie unter Logische Ansichten erstellen.
- Informationen zum Erstellen einer materialisierten Ansicht, die andere Arten der Zugriffssteuerung unterstützt, finden Sie unter Materialisierte Ansichten erstellen.
- Informationen zum Abrufen von Metadaten zu Ansichten finden Sie unter Metadaten zu Ansichten abrufen.
- Informationen zum Verwalten von Ansichten finden Sie unter Ansichten verwalten.