Freigeben von Daten aus mehreren Datenbanken¶
Snowflake-Datenanbieter können Daten, die sich in verschiedenen Datenbanken befinden, mithilfe sicherer Ansichten freigeben. Eine sichere Ansicht kann auf Objekte wie Schemas, Tabellen und andere Ansichten aus einer oder mehreren Datenbanken verweisen, sofern diese Datenbanken demselben Konto angehören.
Die Freigabe einer sicheren Ansicht, die auf Objekte aus verschiedenen Datenbanken verweist, unterscheidet sich von der Freigabe von Daten in einer einzelnen Datenbank.
Sie müssen nicht nur alle Standardschritte zum Freigeben von Daten ausführen, sondern auch die Berechtigung REFERENCE_USAGE für jede Datenbank erteilen, auf die von einer sicheren Ansicht verwiesen wird, die Sie freigeben möchten. Sie müssen REFERENCE_USAGE jedoch nicht für die Datenbank gewähren, in der die sichere Ansicht erstellt wird.
Wichtig
Die Berechtigung REFERENCE_USAGE kann einer Datenbankrolle nicht erteilt werden, um Objekte aus mehreren Datenbanken in eine Freigabe aufzunehmen. Diese Einschränkung gilt auch für Objekte wie sichere Ansichten, die eine oder mehrere zugrunde liegende Tabellen in einer separaten Datenbank haben.
Um mehrere Datenbanken in eine Freigabe einzubeziehen, müssen Sie der Freigabe direkt Berechtigungen für die Objekte erteilen. Weitere Informationen zu dieser Option finden Sie unter Option 2: Direktes Zuweisen von Berechtigungen zu einer Freigabe.
Sie müssen die Berechtigung für jede Datenbank, auf die in einer Ansicht verwiesen wird, separat erteilen, bevor Sie die Ansicht einer Freigabe hinzufügen (d. h. SELECT-Berechtigung für die freizugebende Ansicht erteilen).
So geben Sie eine sichere Ansicht frei, die auf Objekte aus mehreren Datenbanken verweist:
Stellen Sie als Benutzer mit der Rolle ACCOUNTADMIN oder einer Rolle, die über die globale Berechtigung CREATE SHARE verfügt, eine Verbindung zu Ihrem Snowflake-Konto her. Weitere Details zur Berechtigung CREATE SHARE finden Sie unter Aktivieren von Nicht-ACCOUNTADMIN-Rollen zur Ausführung von Data Sharing-Aufgaben.
Erstellen Sie eine Freigabe mit CREATE SHARE.
Erteilen Sie mit GRANT <Berechtigung> … TO SHARE die USAGE-Berechtigung für die Datenbank, die Sie freigeben möchten.
Bemerkung
Wenn Sie eine sichere Ansicht freigeben, die auf Objekte verweist, die zu mehreren Datenbanken gehören, müssen Sie die Berechtigung USAGE nur der Datenbank erteilen, in der die sichere Ansicht erstellt wird. Sie können nur einer Datenbank pro Freigabe USAGE gewähren.
Gewähren Sie die Berechtigung USAGE für jedes Schema in der Datenbank, das Sie mit GRANT <Berechtigung> … TO SHARE freigeben möchten.
Gewähren Sie die Berechtigung REFERENCE_USAGE für jede zusätzliche Datenbank, die Objekte enthält, auf die in der Ansicht verwiesen wird, die Sie mithilfe von GRANT <Berechtigung> … TO SHARE freigeben möchten.
Erteilen Sie die Berechtigung SELECT für die Ansicht, die Sie mit GRANT <Berechtigung> … TO SHARE freigeben möchten.
Fügen Sie mit ALTER SHARE ein oder mehrere Verbraucherkonten zur Freigabe hinzu.
Die Freigabe kann nun von den angegebenen Konten genutzt werden.
Bemerkung
Um eine sichere Ansicht freizugeben, die auf eine UDF in einer anderen Datenbank verweist, müssen Sie die UDF sicher machen. Weitere Informationen zum Erstellen einer sicheren UDF finden Sie unter Erstellen einer sicheren UDF oder einer sicheren gespeicherten Prozedur.
Beispiele¶
In den folgenden Beispielen wird das Erstellen von sicheren Ansichten gezeigt.
Freigeben von Daten aus mehreren Datenbanken mit Verbrauchern in anderen Regionen¶
Sie können Daten aus mehreren Datenbanken für Verbraucherkonten in anderen Regionen und auf Cloudplattformen freigeben, indem Sie eine Replikationsgruppe verwenden. Fügen Sie die Freigabe und jede Datenbank, auf die die Freigabe verweist, in die Gruppe ein, um Daten auf ein Snowflake-Konto in einer anderen Region zu replizieren. Anschließend können Sie der replizierten Freigabe Verbraucherkonten hinzufügen. Detaillierte Anweisungen finden Sie unter Sicheres Data Sharing über Regionen und Cloudplattformen hinweg.