Autorisierte Ansichten
In diesem Dokument wird beschrieben, wie Sie autorisierte Ansichten und autorisierte materialisierte Ansichten in BigQuery erstellen.
Übersicht
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. Die Principals können die von Ihnen freigegebenen Daten ansehen und Abfragen darauf ausführen, aber nicht direkt auf das Quelldataset zugreifen.
Ansichtstypen
Eine logische Ansicht ist der Standardansichtstyp für BigQuery. Eine materialisierte Ansicht ist eine vorausberechnete 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 wird als autorisierte materialisierte Ansicht bezeichnet.
Wenn eine logische Ansicht auf einer großen oder rechenintensiven Abfrage basiert, können Sie stattdessen eine materialisierte Ansicht erstellen. Wenn Sie jedoch nur eine Teilmenge Ihrer Daten abfragen oder andere Techniken verwenden, lässt sich die Leistung oft verbessern, ohne dass eine materialisierte Ansicht erstellt werden muss.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Allgemeine Schritte zum Erstellen autorisierter Ansichten
Wenn Sie eine Ansicht erstellen und freigeben möchten, folgen Sie dieser allgemeinen Anleitung, die für autorisierte logische Ansichten und autorisierte materialisierte Ansichten gleich ist.
- Erstellen Sie ein Dataset, das Ihre Quelldaten enthält.
- Führen Sie eine Abfrage aus, um Daten in eine Zieltabelle im Quelldataset 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 Zugriff 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 sie isoliert und es ist nicht mehr möglich, die Anzahl der Zeilen in der Tabelle zu sehen.
Durch das Erstellen und Anwenden von Richtlinien-Tags kann ein Datenadministrator außerdem 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 das Freigeben autorisierter Ansichten flexibel ist und die beste Leistung bietet.
Weitere Informationen zum 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
- Beispiele für die Verwendung der 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 das Dataset gewähren, das den Zugriff auf die Ansichten des Dataset enthält, das die Daten enthält.
Sie können Hauptkonten dann Zugriff auf das Dataset mit der Gruppe von Ansichten oder auf einzelne Ansichten im Dataset nach Bedarf 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.
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 das Quelldaten-Dataset und das Dataset der autorisierten Ansicht am selben regionalen Standort befinden.
- Wenn Sie eine autorisierte Ansicht löschen, kann es bis zu 24 Stunden dauern, bis die autorisierte Ansicht aus der Liste der Ansichten entfernt wird. In diesem Zeitraum können Sie nicht auf die autorisierte Ansicht zugreifen, aber die gelöschte autorisierte Ansicht kann in der Liste der Ansichten angezeigt werden und wird auf das Limit der autorisierten Ansicht angerechnet. Dieses Limit kann das Erstellen zusätzlicher autorisierter Ansichten verhindern, wenn die neue autorisierte Ansicht dieses Limit überschreitet.
Hinweise
Weisen Sie IAM-Rollen (Identity and Access Management) zu, die Nutzern die erforderlichen Berechtigungen zum Abfragen der autorisierten Ansichten oder autorisierten materialisierten Ansichten gewähren, die Sie freigeben.
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.
Außerdem müssen Sie Nutzern oder Gruppen Zugriff auf das Projekt und das Dataset gewähren, die die Ansicht enthalten.
Administratorberechtigungen 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.
Sie benötigen die IAM-Berechtigung bigquery.tables.create
, um eine Ansicht zu erstellen. Die vordefinierte IAM-Rolle roles/bigquery.dataEditor
enthält die Berechtigungen, die Sie zum Erstellen einer Konfiguration benötigen.
Wenn Sie die Berechtigung bigquery.datasets.create
haben, können Sie außerdem Ansichten in den von Ihnen erstellten Datasets erstellen. Wenn Sie eine Ansicht für Daten erstellen möchten, deren Inhaber Sie nicht sind, benötigen Sie die Berechtigung bigquery.tables.getData
für diese Tabelle.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Administratorberechtigungen für das zweite Dataset, das Zugriff auf die Ansicht gewährt
Zum Aktualisieren von Dataset-Attributen benötigen Sie die folgenden IAM-Berechtigungen:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(nur erforderlich, wenn Dataset-Zugriffssteuerungen in der Trusted Cloud Console aktualisiert werden)
Die vordefinierte IAM-Rolle roles/bigquery.dataOwner
enthält die Berechtigungen, die Sie zum Aktualisieren von Dataset-Attributen benötigen.
Wenn Sie die Berechtigung bigquery.datasets.create
haben, können Sie außerdem Attribute der von Ihnen erstellten Datasets aktualisieren.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und 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.user
für das Projekt, das die autorisierte Ansicht enthält. - Die IAM-Rolle
roles/bigquery.dataViewer
für das Dataset, das die autorisierte Ansicht enthält.
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 im Tutorial 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. Das muss ein anderes Dataset als das in der Quellabfrage verwendete Dataset sein.
Geben Sie bei Tabelle den Namen der Ansicht ein.
Klicken Sie auf Speichern.
Gewähren Sie Nutzern, die die autorisierte Ansicht verwenden dürfen, die erforderlichen Berechtigungen.
Wählen Sie im Bereich Explorer das Dataset aus, das in der Quellabfrage verwendet wird.
Klicken Sie im Bereich Details auf Freigabe > Ansichten autorisieren.
Geben Sie im Bereich Autorisierte Ansichten für Autorisierte Ansicht den vollständig 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 Trusted Cloud -Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Standardprojekt Trusted Cloud 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
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.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
-upgrade
ein, 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
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Trusted Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Trusted Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Nutzer oder Gruppen für autorisierte Datenansichten verwalten
Nachdem Sie eine Ansicht autorisiert haben, können Sie den Zugriff darauf aufrechterhalten, indem Sie die folgenden Aufgaben für ein Dataset, eine Tabelle oder eine Ansicht ausführen:
- Zugriffsrichtlinie aufrufen
- Gewähren Sie den Zugriff.
- 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 Trusted Cloud Console die Seite „BigQuery“ auf.
Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.
Klicken Sie auf > Ansichten autorisieren.
FreigabeKlicken 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, deren Autorisierung Sie entfernen möchten.
bq rm \ project_id:dataset:table_id
API
Rufen Sie die Methode tables.delete
auf und verwenden Sie die Attribute projectID
,datasetID
und tableID
, 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 dazu, wie die Sicherheit auf Zeilenebene mit materialisierten Ansichten interagiert, 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 abfragen für die Sicherheit auf Spaltenebene.
BigQuery-Freigabe mit autorisierten Ansichten verwenden
BigQuery Sharing (früher Analytics Hub) ist eine Plattform für den Datenaustausch mit den folgenden Funktionen:
- Sie können Daten und Statistiken in großem Umfang über Organisationsgrenzen hinweg teilen.
- Es wird ein robustes Sicherheits- und Datenschutzkonzept verwendet.
- 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 Gruppe von Abonnenten.
Ein verknüpftes Dataset ist ein schreibgeschütztes BigQuery-Dataset, das als Verweis auf ein freigegebenes Dataset dient. Wenn Sie einen Eintrag für die Freigabe abonnieren, wird ein verknüpftes Dataset in Ihrem Projekt erstellt, aber keine Kopie des Datasets. Abonnenten können die Daten also lesen, aber keine Objekte darin hinzufügen oder aktualisieren.
Materialisierte Ansichten, die auf Tabellen im verknüpften Dataset verweisen, werden nicht unterstützt.
Weitere Informationen finden Sie unter Einführung in die Freigabe.
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.
- Metadaten zu Ansichten abrufen
- Informationen zum Verwalten von Ansichten finden Sie unter Ansichten verwalten.