Partage des données de plusieurs bases de données¶
Les fournisseurs de données Snowflake peuvent partager des données résidant dans différentes bases de données à l’aide de vues sécurisées. Une vue sécurisée peut référencer des objets tels que des schémas, des tables et d’autres vues à partir d’une ou de plusieurs bases de données, à condition que ces bases de données appartiennent au même compte.
Le processus de partage d’une vue sécurisée faisant référence à des objets de plusieurs bases de données diffère du partage de données résidant dans une seule base de données.
En plus d’effectuer toutes les étapes standards pour partager des données, vous devez également accorder le privilège REFERENCE_USAGE sur chaque base de données référencée par une vue sécurisée que vous souhaitez partager. Cependant, vous n’avez pas besoin d’accorder REFERENCE_USAGE sur la base de données où la vue sécurisée est créée.
Important
Le privilège REFERENCE_USAGE ne peut pas être accordé à un rôle de base de données pour inclure des objets de plusieurs bases de données dans un partage. Cette limitation s’applique également aux objets tels que les vues sécurisées qui ont une ou plusieurs tables sous-jacentes dans une base de données séparée.
Pour inclure plusieurs bases de données dans un partage, vous devez accorder des privilèges sur les objets directement au partage. Pour plus d’informations sur cette option, voir Option 2 : Accorder des privilèges directement à un partage.
Vous devez accorder le privilège séparément sur chaque base de données référencée dans une vue avant d’ajouter la vue à un partage (c’est-à-dire accorder le privilège SELECT sur la vue donnant accès à un partage).
Pour partager une vue sécurisée faisant référence à des objets de plusieurs bases de données :
Connectez-vous à votre compte Snowflake en tant qu’utilisateur avec le rôle ACCOUNTADMIN ou un rôle doté du privilège global CREATE SHARE. Pour plus de détails sur le privilège CREATE SHARE, voir Autoriser les rôles non ACCOUNTADMIN à effectuer des tâches de partage de données.
Créez un partage à l’aide de CREATE SHARE.
Accordez le privilège USAGE sur la base de données que vous souhaitez partager avec GRANT <privilège> … TO SHARE.
Note
Si vous partagez une vue sécurisée faisant référence à des objets appartenant à plusieurs bases de données, vous devez accorder le privilège USAGE uniquement à la base de données où la vue sécurisée est créée. Vous ne pouvez accorder USAGE qu’à une seule base de données par partage.
Accordez le privilège USAGE sur chaque schéma de la base de données que vous souhaitez partager à l’aide de GRANT <privilège> … TO SHARE.
Accordez le privilège REFERENCE_USAGE sur chaque base de données supplémentaire contenant des objets référencés par la vue que vous souhaitez partager à l’aide de GRANT <privilège> … TO SHARE.
Accordez le privilège SELECT sur la vue que vous souhaitez partager à l’aide de GRANT <privilège> … TO SHARE.
Ajoutez un ou plusieurs comptes au partage avec ALTER SHARE.
Le partage peut maintenant être consommé par les comptes indiqués.
Note
Pour partager une vue sécurisée qui référence une UDF dans une autre base de données, vous devez sécuriser l’UDF. Pour plus de détails sur la création d’une UDF, voir Création d’une UDF ou d’une procédure stockée sécurisée.
Exemples¶
Reportez-vous aux exemples suivants pour créer des vues sécurisées.
Partage de données provenant de plusieurs bases de données avec des consommateurs d’autres régions¶
Vous pouvez partager les données de plusieurs bases de données avec des comptes consommateurs dans d’autres régions et plateformes Cloud via un groupe de réplication. Incluez le partage et chaque base de données que le partage référence dans le groupe pour répliquer les données vers un compte Snowflake dans une autre région. Vous pouvez ensuite ajouter des comptes consommateurs au partage répliqué. Pour des instructions détaillées, voir Partage sécurisé des données entre les régions et les plateformes Cloud.