Demander des privilèges globaux des consommateurs

Cette rubrique décrit comment les fournisseurs peuvent configurer une Snowflake Native App pour qu’elle demande des privilèges globaux à un consommateur après l’installation d’une application par ce dernier. Ces privilèges permettent à l”Snowflake Native App d’effectuer des tâches dans le compte consommateur, par exemple la création d’un entrepôt ou d’une base de données.

Si une application a besoin d’effectuer des actions ou de créer des objets en dehors du contexte de la Snowflake Native App, le consommateur doit accorder les privilèges nécessaires pour permettre à l’application de le faire.

Workflow de demande de privilèges globaux du consommateur

Le flux de travail suivant décrit les étapes à suivre pour configurer une Snowflake Native App afin qu’elle demande des privilèges globaux.

Note

Reportez-vous à Création d’une interface utilisateur pour demander des privilèges et des références pour obtenir des informations sur la création d’une interface utilisateur permettant aux consommateurs d’accorder des privilèges à l’aide de Snowsight.

Pour demander des privilèges globaux, un fournisseur effectue les opérations suivantes lors du développement et de la publication d’une Snowflake Native App :

  1. Déterminez les privilèges requis par l’application.

    Par exemple, si une application doit créer une base de données dans le compte consommateur, le fournisseur doit demander au consommateur d’accorder le privilège global CREATE DATABASE à l’application.

    Reportez-vous à Privilèges que le fournisseur peut demander au consommateur pour obtenir des détails sur les privilèges globaux qu’une d’application peut demander.

  2. Ajoutez les privilèges requis au fichier manifeste manifest.yml. Voir Ajouter une demande de privilèges au fichier manifeste pour plus de détails.

Après avoir installé l”Snowflake Native App, le consommateur effectue les opérations suivantes :

  1. Examiner les privilèges globaux requis par l’application. Pour plus d’informations, voir Afficher les privilèges demandés par une Snowflake Native App.

  2. Accorder les privilèges globaux sur l’application. Consultez Attribuer des privilèges à une application pour plus d’informations.

Privilèges que le fournisseur peut demander au consommateur

Le Snowflake Native App Framework permet à des fournisseurs de demander les privilèges globaux suivants dans le compte de consommateur :

  • EXECUTE TASK

  • EXECUTE MANAGED TASK

  • CREATE WAREHOUSE

  • MANAGE WAREHOUSES

  • CREATE DATABASE

Un fournisseur peut également demander au consommateur d’accorder à l’application le privilège IMPORTED PRIVILEGES sur la base de données SNOWFLAKE. Les consommateurs ne peuvent accorder ce privilège qu’à l’aide de commandes SQL. Voir Attribuer des privilèges à une application pour plus de détails. Ce privilège ne peut pas être accordé en utilisant Snowsight.

Note

L’attribution de IMPORTED PRIVILEGES permet à l”Snowflake Native App d’afficher des informations relatives à l’utilisation et aux coûts associés au compte consommateur. Vous devez vous assurer que les consommateurs en sont conscients lors de la publication de votre Snowflake Native App.

Ajouter une demande de privilèges au fichier manifeste

L’exemple suivant montre comment ajouter le privilège EXECUTE TASK au fichier manifest.yml :

privileges:
- EXECUTE TASK:
    description: "Privilege to run tasks within the consumer account"
Copy

Un fournisseur peut ajouter n’importe lequel des privilèges pris en charge de la même manière.

Afficher les privilèges demandés par une Snowflake Native App

Lorsqu’un fournisseur spécifie un privilège dans le fichier manifest.yml, les demandes de privilèges sont incluses dans l”Snowflake Native App installée. Le consommateur peut voir les demandes de privilèges après avoir installé l’application.

Pour voir les privilèges globaux requis par une application, exécutez la commande SHOW PRIVILEGES comme indiqué dans l’exemple suivant :

SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Copy

Attribuer des privilèges à une application

Après avoir déterminé les privilèges requis par une Snowflake Native App, le consommateur doit ensuite accorder ces privilèges à l’application.

Pour accorder le privilège global demandé dans l’exemple ci-dessus, le consommateur exécute la commande GRANT <privilèges> comme indiqué dans l’exemple suivant :

GRANT CREATE DATABASE ON ACCOUNT TO APPLICATION hello_snowflake_app;
Copy

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;
Copy