Protection de la propriété intellectuelle des fournisseurs

Cette rubrique décrit comment Snowflake Native App Framework protège les données du fournisseur en expurgeant ou en supprimant les informations sur les objets partagés par une Snowflake Native App.

À propos de la protection de la propriété intellectuelle dans Snowflake Native App Framework

Lorsqu’un consommateur installe une Snowflake Native App, il n’est pas autorisé à visualiser les objets contenus dans l’objet d’application, à moins qu’un fournisseur n’accorde des autorisations sur les objets à l’aide de rôles d’application.

En général, lorsqu’un consommateur interroge les métadonnées d’un objet à l’aide d’un schéma, d’une vue ou utilise Snowsight pour afficher le Query Profile ou l” Query History pour ces requêtes, Snowflake Native App Framework expurge les informations sur les objets au sein de l’objet d’application.

Informations supprimées du profil de la requête

Snowflake Native App Framework expurge les informations du profil de requête dans les contextes suivants :

  • Requêtes exécutées lors de l’installation ou de la mise à niveau de l’application.

  • Requêtes provenant d’une procédure stockée appartenant à l’application.

  • Requêtes contenant une vue ou une fonction non sécurisée appartenant à l’application.

Pour chacun de ces types de requêtes, Snowsight réduit les données du profil de la requête en un seul nœud vide au lieu d’afficher l’arbre complet du profil de la requête.

Informations expurgées de l’historique des requêtes

Pour les requêtes liées à une Snowflake Native App, les champs query_text et error_message sont expurgés de l’historique de la requête dans les contextes suivants :

  • Les requêtes sont exécutées lors de l’installation ou de la mise à niveau de l’application.

  • Requêtes provenant d’une tâche enfant d’une procédure stockée appartenant à l’application.

Dans chacune de ces situations, la cellule de l’historique de la requête dans Snowsight apparaît vide.

Informations expurgées des commandes et des vues SQL.

Lorsqu’un consommateur utilise la commande a SHOW ou DESCRIBE pour afficher des informations sur l’objet de l’application ou sur les objets appartenant à l’application, les informations relatives aux détails de la mise en œuvre sont expurgées. Par exemple, les définitions et le corps de la fonction sont expurgés de la sortie de ces commandes.

Les informations relatives aux détails de la mise en œuvre sont supprimées de la vue ACCESS_HISTORY dans les contextes suivants :

  • Requêtes générées lors de l’installation ou de la mise à niveau de l’application.

  • Requêtes générées par des procédures stockées et des fonctions définies par l’utilisateur et appartenant à l’application.

En outre, pour les vues appartenant à l’application, les informations relatives à la table de base sont expurgées.

Fonctions contextuelles bloquées

Pour protéger les informations relatives aux objets au sein d’un objet d’application, Snowflake Native App Framework bloque les fonctions contextuelles suivantes :

Fonction contextuelle

Bloquée dans le contenu partagé (renvoie null)

Bloquée dans les scripts d’installation, les procédures stockées et les UDFs appartenant à l”Snowflake Native App (lève une exception).

CURRENT_ROLE

CURRENT_ROLE_TYPE

CURRENT_USER

IS_ROLE_IN_SESSION

CURRENT_IP_ADDRESS

CURRENT_AVAILABLE_ROLES

CURRENT_SECONDARY_ROLES

ALL_USER_NAMES

GET_USERS_FOR_COLLABORATION

CURRENT_WAREHOUSE

SYSTEM$ALLOWLIST

Protéger les contenus partagés

Pour protéger la confidentialité et l’intégrité du contenu de données d’un fournisseur, le Snowflake Native App Framework met en œuvre la restriction suivante :

  • Les objets partagés sont en lecture seule pour un objet d’application et une Snowflake Native App installée.

  • Les objets partagés ne sont pas directement exposés aux consommateurs. Les objets ne sont exposés qu’à travers une vue qui est installée lors de l’exécution du script d’installation pendant l’installation ou de la mise à niveau de l” Snowflake Native App.

  • Seul le fournisseur peut mettre à jour le contenu partagé.

  • Seuls les objets suivants peuvent être partagés avec un objet d’application ou une Snowflake Native App installée. Ces objets doivent disposer de certains privilèges :

    • Schémas : seul le privilège USAGE peut être accordé au contenu partagé d’un paquet d’application.

    • Tables : seul le privilège SELECT peut être accordé au contenu partagé d’un paquet d’application. Les tables avec des politiques définies (accès par ligne, masquage, basées sur des balises, etc.) ne peuvent pas être partagées. Les politiques peuvent être définies sur les objets lorsqu’ils sont exposés aux consommateurs.

    • Vues : seul le privilège SELECT peut être accordé au contenu partagé d’un paquet d’application. Les vues avec des politiques définies, y compris l’accès aux lignes, le masquage, celles basées sur des balises, etc., ne peuvent pas être partagées.

Note

Une vue, ou toutes les vues à partir desquelles une vue est composée, ne peuvent pas contenir de fonctions JavaScript, Java, Python ou Scala.

Reportez-vous à Permettre aux consommateurs d’accéder aux objets partagés pour plus d’informations.