Partage des données non structurées avec une vue sécurisée

Cette rubrique explique brièvement comment partager des fichiers de données non structurés en utilisant une vue sécurisée et Secure Data Sharing. Avec Secure Data Sharing, les fournisseurs de données peuvent partager des objets sélectionnés dans une base de données d’un compte Snowflake avec des consommateurs de données d’un autre compte Snowflake.

Pour plus d’informations et d’autres exemples, voir Utilisation des partages.

Étape 1 : Créer une vue sécurisée

Tout d’abord, utilisez la commande CREATE SECURE VIEW pour créer une vue sécurisée à partir de données non structurées sur une zone de préparation. Une vue permet d’accéder au résultat d’une requête comme une table, et une vue sécurisée est spécifiquement désignée pour la confidentialité des données. Pour plus d’informations, voir Aperçu des vues.

Vous pouvez autoriser les consommateurs de données à extraire de la vue sécurisée des URLs scopées ou pré-signées. Les URLs scopées offrent une meilleure sécurité, tandis que les URLs pré-signées sont accessibles sans autorisation ni authentification. Pour choisir la bonne URL en fonction de votre situation, consultez Types d’URLs disponibles pour accéder aux fichiers.

Note

Snowflake ne crée pas d’URLs scopées ou pré-signées avant qu’un utilisateur d’un compte de consommateur ne fasse une requête sur une vue sécurisée. Ce comportement de création à la demande vous aide à gérer la durée de vie des URLs pré-signées. Pour limiter le risque de fuite d’URLs pré-signées, vous pouvez également définir un court intervalle de temps pour le paramètre EXPIRATION_TIME de la fonction GET_PRESIGNED_URL.

Les exemples suivants créent des vues sécurisées qui permettent aux consommateurs de données d’interroger les URLs scopées ou pré-signées pour un ensemble spécifique de fichiers en zone de préparation. Les deux vues interrogent la colonne RELATIVE_PATH d’une table de répertoire pour récupérer les URL scopées ou pré-signées.

URL scopée

Cet exemple appelle la fonction BUILD_SCOPED_FILE_URL pour créer une vue sécurisée avec les URLs scopées pour un ensemble de fichiers en zone de préparation. L’exemple transmet la colonne RELATIVE_PATH d’une table de répertoire sur une zone de préparation nommée mystage à la fonction BUILD_SCOPED_FILE_URL :

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

Vous pouvez également créer une vue sécurisée à partir d’un sous-ensemble de fichiers d’une zone de préparation afin de ne pas avoir à partager l’intégralité de la zone de préparation. L’exemple suivant crée une vue sécurisée des images sur une zone de préparation où le champ client_name est égal à abc :

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

URL pré-signée

Cet exemple appelle la fonction GET_PRESIGNED_URL pour récupérer les URLs pré-signées pour un ensemble de fichiers en zone de préparation. L’exemple spécifie 60 secondes pour le paramètre EXPIRATION_TIME afin que les URLs pré-signées ne soit accessibles que pendant une minute.

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

Étape 2 : Créer un partage

Ensuite, créez un partage vide, puis accordez des privilèges d’accès à votre vue sécurisée sur le partage. Cette opération permet d’ajouter l’objet de la vue sécurisée au partage.

L’exemple suivant crée un partage avec la commande CREATE SHARE et utilise ensuite la commande GRANT <privilège> … TO SHARE pour accorder le privilège SELECT pour une vue sécurisée du partage.

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

Étape 3 : Ajout de comptes au partage

Enfin, vous devez fournir l’accès des comptes de consommateurs à votre partage en ajoutant les comptes à votre partage.

L’exemple suivant utilise la commande ALTER SHARE pour ajouter un compte nommé consumer_account_1 au partage nommé my_share.

ALTER SHARE my_share ADD ACCOUNTS=consumer_account_1;
Copy

Une fois cette étape terminée, le compte consumer_account_1 peut voir le partage et accéder aux fichiers dans la vue sécurisée.