CREATE APPLICATION PACKAGE

Crée un nouveau paquet d’application qui contient le contenu des données et la logique d’application d’une application utilisant le Native Apps Framework. Un paquet d’application est une base de données à laquelle ont été ajoutées des fonctions qui précisent les éléments suivants :

  • La version d’une application.

  • Le contenu des données disponibles pour l’application.

Voir aussi :

ALTER APPLICATION PACKAGE, DROP APPLICATION PACKAGE, SHOW APPLICATION PACKAGES

Syntaxe

CREATE APPLICATION PACKAGE [ IF NOT EXISTS ] <name>
  [ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
  [ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ DISTRIBUTION = { INTERNAL | EXTERNAL } ]
  [ MULTIPLE_INSTANCES = TRUE ]
Copy

Paramètres requis

name

Indique l’identificateur du paquet d’application ; il doit être unique pour votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

Paramètres facultatifs

DATA_RETENTION_TIME_IN_DAYS = integer

Spécifie le nombre de jours pendant lesquels des actions Time Travel (CLONE et UNDROP) peuvent être effectuées sur le paquet d’application, ainsi que la durée de conservation Time Travel par défaut de tous les schémas créés dans la base de données.

Pour plus de détails, voir Compréhension et utilisation de la fonction Time Travel.

Pour une description détaillée de ce paramètre de niveau objet, ainsi que plus d’informations sur les paramètres d’objet, voir Paramètres.

Valeurs :

  • Édition Standard : 0 ou 1

  • Édition Enterprise :

    • 0 à 90 pour les bases de données permanentes

Par défaut :

  • Édition Standard : 1

  • Édition Enterprise (ou supérieure) : 1 (sauf si une valeur par défaut différente a été spécifiée au niveau du compte)

Note

Une valeur de 0 désactive Time Travel pour la base de données.

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

Paramètre d’objet qui spécifie le nombre maximum de jours pendant lesquels Snowflake peut prolonger la période de conservation des données pour les tables du paquet d’application, afin d’éviter que les flux sur les tables ne deviennent obsolètes.

Pour une description détaillée de ce paramètre, voir MAX_DATA_EXTENSION_TIME_IN_DAYS.

DEFAULT_DDL_COLLATION = 'collation_specification'

Spécifie une spécification de classement par défaut pour toutes les tables et tous les schémas ajoutés au paquet d’application. La valeur par défaut peut être remplacée au niveau du schéma et de la table individuelle.

Pour plus de détails sur le paramètre, voir DEFAULT_DDL_COLLATION.

COMMENT = 'string_literal'

Spécifie un commentaire pour le paquet d’application.

Par défaut : aucune valeur

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Spécifie le nom de la balise et la valeur de la chaîne de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.

Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.

DISTRIBUTION = { INTERNAL | EXTERNAL }

Spécifie le type d’annonce qu’un fournisseur peut créer lorsqu’il utilise le paquet d’application comme produit de données d’une annonce.

  • INTERNAL indique qu’un fournisseur ne peut créer une annonce privée qu’au sein de la même organisation où le paquet d’application a été créé. L’analyse de sécurité automatisée n’est pas effectuée lorsque la propriété DISTRIBUTION est définie sur INTERNAL.

  • EXTERNAL indique qu’un fournisseur peut créer des annonces en dehors de la même organisation où le paquet d’application a été créé.

Voir Exécution de l’analyse de sécurité automatisée pour des informations sur le paramètre de la propriété DISTRIBUTION et l’analyse de sécurité automatisée.

Note

La définition du paramètre DISTRIBUTION sur EXTERNAL déclenche un examen de sécurité automatisé pour chaque version active et chaque correctif définis dans le paquet d’application.

Les restrictions suivantes s’appliquent jusqu’à ce que l’examen de sécurité automatisé ait le statut APPROVED :

  • Vous ne pouvez pas définir une directive de version pour une version ou un correctif.

  • Vous ne pouvez pas publier une annonce pour le paquet d’application.

MULTIPLE_INSTANCES = TRUE

Permet au consommateur d’installer plusieurs instances d’une application à partir du paquet d’application. Cette propriété ne peut pas être définie pour les paquets d’applications qui sont inclus dans une annonce à essai ou monétisée.

Lorsque plusieurs instances sont autorisées, les consommateurs peuvent installer un maximum de 10 instances d’une application dans leur compte.

Prudence

Une fois que cette propriété a été paramétrée à true, elle ne peut être ni paramétrée à FALSE, ni annulée ultérieurement.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

Remarques

CREATE APPLICATION PACKAGE

Compte

Par défaut, seul le rôle ACCOUNTADMIN dispose de ce privilège. Ce privilège peut être accordé à d’autres rôles si nécessaire.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • Pour créer un paquet d’application, l’appelant doit disposer du privilège CREATE APPLICATION PACKAGE sur le compte.

  • Il n’y a aucune restriction sur les types d’objets qui peuvent résider dans le paquet d’application ou sur les rôles (au niveau de la base de données ou du compte) qui peuvent posséder ces objets.

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.

Exemples

CREATE APPLICATION PACKAGE hello_snowflake_package;
Copy
+-----------------------------------------------------------------------+
| status                                                                |
|-----------------------------------------------------------------------|
| Application Package 'hello_snowflake_package' created successfully.   |
+-----------------------------------------------------------------------+