Freigeben von unstrukturierten Daten mithilfe einer sicheren Ansicht

Unter diesem Thema wird kurz erläutert, wie Sie unstrukturierte Datendateien mithilfe einer sicheren Ansicht und Secure Data Sharing freigeben können. Mit Secure Data Sharing können Datenanbieter ausgewählte Objekte einer Datenbank von einem Snowflake-Konto für Datenverbraucher in einem anderen Snowflake-Konto freigeben.

Weitere Informationen und zusätzliche Beispiele finden Sie unter Verwenden von Freigaben.

Schritt 1: Sichere Ansicht erstellen

Verwenden Sie zuerst den Befehl CREATE SECURE VIEW, um eine sichere Ansicht von unstrukturierten Daten in einem Stagingbereich zu erstellen. Eine Ansicht ermöglicht den Zugriff auf das Ergebnis einer Abfrage wie auf eine Tabelle, und eine sichere Ansicht ist speziell für den Datenschutz bestimmt. Weitere Informationen dazu finden Sie unter Übersicht zu Ansichten.

Sie können Datenverbrauchern erlauben, aus der sicheren Ansicht entweder die Bereichs- oder vorsignierte URLs abzurufen. Bereichs-URLs bieten mehr Sicherheit, während auf vorsignierte URLs ohne Autorisierung oder Authentifikation zugegriffen werden kann. Wie Sie die passende URL für Ihren Anwendungsfall auswählen, erfahren Sie unter Verfügbare URL-Typen für Zugriff auf Dateien.

Bemerkung

Snowflake erstellt Bereichs- oder vorsignierte URLs erst dann, wenn ein Benutzer eines Verbraucherkontos eine sichere Ansicht abfragt. Dieses „Erstellen-nach-Bedarf“-Verhalten hilft Ihnen bei der Verwaltung der Gültigkeitsdauer von vorsignierten URLs. Um das Risiko zu minimieren, dass vorsignierte URLs ablaufen, können Sie auch ein kurzes Zeitintervall für den Parameter EXPIRATION_TIME der Funktion GET_PRESIGNED_URL festlegen.

In den folgenden Beispielen werden sichere Ansichten erstellt, die es den Datenverbrauchern ermöglichen, die Bereichs- oder vorsignierten URLs für eine bestimmte Menge von Stagingdateien abzufragen. Beide Ansichten fragen die Spalte RELATIVE_PATH einer Verzeichnistabelle ab, um die Bereichs- oder vorsignierte URL abzurufen.

Bereichs-URL

In diesem Beispiel wird die Funktion BUILD_SCOPED_FILE_URL aufgerufen, um für eine Menge von Stagingdateien eine sichere Ansicht mit Bereichs-URLs zu erstellen. Im Beispiel wird die Spalte RELATIVE_PATH einer Verzeichnistabelle in einem Stagingbereich namens mystage an die Funktion BUILD_SCOPED_FILE_URL übergeben:

CREATE OR REPLACE SECURE VIEW images_scoped_v AS
SELECT BUILD_SCOPED_FILE_URL(@mystage, relative_path) AS scoped_file_url
FROM DIRECTORY(@mystage);
Copy

Sie können auch eine sichere Ansicht aus einer Teilmenge von Dateien in einem Stagingbereich erstellen, sodass Sie nicht den gesamten Stagingbereich freigeben müssen. Das folgende Beispiel erstellt eine sichere Ansicht von Bildern eines Stagingbereichs, bei denen das Feld client_name den Wert abc hat:

CREATE OR REPLACE SECURE VIEW images_for_client_abc AS
SELECT build_scoped_file_url(@myStage, relative_path) AS scoped_file_url
FROM directory(@mystage) d join clients c on d.relative_path = c.relative_path
WHERE c.client_name = 'abc';
Copy

Vorsignierte URL

Rufen Sie die Funktion GET_PRESIGNED_URL auf, um die vorsignierten URLs für eine Menge von Stagingdateien abzurufen. Das Beispiel gibt für den Parameter EXPIRATION_TIME einen Wert von 60 Sekunden an, sodass die vorsignierten URLs nur eine Minute lang zugänglich sein werden.

CREATE OR REPLACE SECURE VIEW images_presigned_v AS
SELECT GET_PRESIGNED_URL(@mystage, relative_path, 60) AS presigned_url
FROM DIRECTORY(@mystage);
Copy

Schritt 2: Freigabe erstellen

Als Nächstes erstellen Sie eine leere Freigabe und erteilen der Freigabe die Zugriffsrechte für Ihre sichere Ansicht. Dadurch wird das sichere Ansichtsobjekt zur Freigabe hinzugefügt.

Das folgende Beispiel erstellt eine Freigabe mit dem Befehl CREATE SHARE und verwendet dann den Befehl GRANT <Berechtigung> … TO SHARE, um der Freigabe die SELECT-Berechtigung für eine sichere Ansicht zu erteilen.

CREATE SHARE my_share;
GRANT SELECT ON my_secure_view TO SHARE my_share;
Copy

Schritt 3: Konten zur Freigabe hinzufügen

Schließlich müssen Sie den Verbraucherkonten Zugriff auf Ihre Freigabe gewähren, indem Sie die Konten zu Ihrer Freigabe hinzufügen.

Im folgenden Beispiel wird der Befehl ALTER SHARE verwendet, um ein Konto mit dem Namen consumer_account_1 zur Freigabe mit dem Namen my_share hinzuzufügen.

ALTER SHARE my_share ADD ACCOUNTS=consumer_account_1;
Copy

Nach Abschluss dieses Schrittes kann das Konto consumer_account_1 die Freigabe sehen und auf die Dateien in der sicheren Ansicht zugreifen.