Octroi de l’accès à une Snowflake Native App¶
Cette rubrique décrit comment un consommateur peut autoriser une Snowflake Native App à créer des objets dans son compte et à y accéder. Il s’agit notamment d’accorder les privilèges demandés par une application ou de permettre l’accès à des objets existants en utilisant des références.
À propos des privilèges et des références demandés par une application¶
Dans une Snowflake Native App simple, tous les objets nécessaires à l’application sont créés à l’intérieur de l’objet APPLICATION lorsque le script d’installation est exécuté pendant l’installation. Tous les objets requis par l’application sont créés et accessibles dans l’application installée. Le consommateur ne doit effectuer aucune action sur son compte.
Cependant, certaines applications peuvent demander au consommateur d’effectuer les types d’actions suivants sur son compte :
Créer une base de données ou un entrepôt.
Exécuter des tâches.
Accéder à des objets existants, par exemple une table.
Il existe deux types d’accès qu’une Snowflake Native App peut demander :
Privilèges permettant à l’application d’effectuer certaines opérations au niveau du compte. Une application peut demander les privilèges globaux suivants :
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
MANAGE WAREHOUSES
CREATE DATABASE
Certaines applications peuvent également demander le privilège IMPORTED PRIVILEGES sur la base de données SNOWFLAKE. Reportez-vous à Octroi du privilège IMPORTED PRIVILEGES sur la base de données SNOWFLAKE pour plus de détails.
Références qui permettent à l’application d’accéder à des objets qui existent déjà dans le compte consommateur et qui se trouvent en dehors de l’objet APPLICATION. Un fournisseur définit les références nécessaires au fichier
manifest.yml
.Après avoir installé l’application, le consommateur peut autoriser l’accès à un objet en créant une référence qui associe l’objet à l’application.
Une application peut demander l’accès aux types d’objets suivants et aux privilèges correspondants :
Type d’objet
Privilèges autorisés
TABLE
SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES
VIEW
SELECT, REFERENCES
EXTERNAL TABLE
SELECT, REFERENCES
FUNCTION
USAGE
PROCEDURE
USAGE
WAREHOUSE
MODIFY, MONITOR, USAGE, OPERATE
API INTEGRATION
USAGE
Un consommateur peut approuver ces demandes en utilisant Snowsight ou en exécutant les commandes SQL comme décrit dans les sections suivantes.
Note
Si vous n’accordez pas les privilèges demandés ou n’associez pas à l’application de références à l’objet demandé, certaines parties de l’application risquent de ne pas fonctionner correctement.
Gestion des demandes d’accès via Snowsight¶
Si un fournisseur met en œuvre une interface utilisateur dans une Snowflake Native App, un consommateur peut effectuer les opérations suivantes en utilisant Snowsight.
Visualiser et accorder des privilèges globaux.
Autoriser l’accès à des objets existants dans le compte du consommateur.
Octroi de privilèges globaux¶
Pour accorder des privilèges ou créer des références après l’installation d’une application, procédez comme suit :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Data Products » Apps.
Sélectionnez l’application.
Sélectionnez l’icône Security dans la barre d’outils.
Les autorisations au niveau du compte demandées par l’application apparaissent sous Account level privileges
Dans la section Account-level privileges sélectionnez Review, puis faites basculer le curseur pour chaque privilège que vous souhaitez accorder.
Sélectionnez Save.
Révocation des privilèges et de l’accès à des objets¶
Pour révoquer des privilèges ou supprimer l’accès à des objets, procédez comme suit :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Data Products » Apps.
Sélectionnez l’application.
Sélectionnez l’icône Security dans la barre d’outils.
Pour révoquer un privilège global, sélectionnez le bouton Edit puis faites basculer le curseur correspondant au privilège que vous souhaitez révoquer.
Pour révoquer l’accès à un objet spécifique, sélectionnez le bouton Delete puis sélectionnez Revoke Privilege.
Note
La révocation de privilèges ou la suppression de l’accès à des objets peut rendre l’application instable ou l’empêcher de fonctionner.
Gestion des privilèges d’une application via des commandes SQL¶
Si le développeur de votre application n’implémente pas d’interface pour l’attribution de privilèges, vous devez gérer les demandes d’accès à l’application à l’aide de commandes SQL.
Affichage des privilèges demandés par une application¶
Lorsqu’un fournisseur spécifie les privilèges requis par l’application, la demande de privilèges est incluse dans l’application installée. Vous pouvez voir ces privilèges après avoir installé l’application.
Pour voir les privilèges requis par une application, exécutez la commande SHOW PRIVILEGES comme indiqué dans l’exemple suivant :
SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Octroi de privilèges à une Snowflake Native App¶
Après avoir déterminé les privilèges demandés par une application, le consommateur peut accorder ces privilèges à l’application.
Par exemple, pour accorder le privilège EXECUTE TASK à une application, exécutez la commande GRANT PRIVILEGE comme indiqué dans l’exemple suivant :
GRANT EXECUTE TASK ON ACCOUNT TO APPLICATION hello_snowflake_app;
Octroi du privilège MANAGE WAREHOUSES à une Snowflake Native App¶
Le privilège MANAGE WAREHOUSES permet à une application de créer, de modifier et d’utiliser des entrepôts au sein du compte de consommateur. Pour accorder le privilège MANAGE WAREHOUSES à une application, utilisez GRANT comme indiqué dans l’exemple suivant :
GRANT MANAGE WAREHOUSES ON ACCOUNT TO APPLICATION hello_snowflake_app;
Octroi du privilège IMPORTED PRIVILEGES sur la base de données SNOWFLAKE¶
Certaines applications peuvent demander qu’un consommateur accorde le privilège IMPORTED PRIVILEGES sur la base de données SNOWFLAKE de son compte. Ce privilège ne peut être accordé qu’à l’aide de commandes SQL. Elle ne peut pas être accordée en utilisant Snowsight. Si une application requiert ce privilège, le fournisseur doit le communiquer au consommateur, par exemple dans le fichier README de l’application.
Pour accorder le privilège IMPORT à la base de données SNOWFLAKE, exécutez la commande suivante :
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO APPLICATION hello_snowflake_app;
Note
Le privilège IMPORTED PRIVILEGES permet à l’application d’accéder aux informations relatives à l’utilisation et aux coûts associés au compte du consommateur. Le consommateur doit s’assurer qu’il souhaite partager ces informations avec l’application avant d’accorder ce privilège.