Schutz des geistigen Eigentums von Anbietern

Unter diesem Thema wird beschrieben, wie das Snowflake Native App Framework Anbieterdaten schützt, indem es Informationen zu den von einer Snowflake Native App freigegeben Objekten maskiert oder entfernt.

Allgemeine Informationen zum Schutz des geistigen Eigentums im Snowflake Native App Framework

Wenn ein Verbraucher eine Snowflake Native App installiert, sind die Objekte innerhalb des Anwendungsobjekts für den Verbraucher nicht sichtbar, es sei denn, ein Anbieter erteilt mittels Anwendungsrollen Berechtigungen für die Objekte.

Wenn ein Verbraucher Objektmetadaten über ein Schema oder eine Ansicht abfragt oder Snowsight verwendet, um Query Profile oder Query History für diese Abfragen anzuzeigen, werden die Informationen zu den Objekten innerhalb des Anwendungsobjekts vom Snowflake Native App Framework ausgeblendet.

In Query Profile ausgeblendete Informationen

Das Snowflake Native App Framework maskiert in den folgenden Kontexten die Informationen aus dem Query Profile:

  • Abfragen, die ausgeführt werden, wenn die App installiert oder aktualisiert wird.

  • Abfragen, die von einer gespeicherten Prozedur stammen, deren Eigentümer die App ist.

  • Abfragen, die eine nicht sichere Ansicht oder Funktion enthalten, deren Eigentümer die App ist.

Für jeden dieser Abfragetypen fasst Snowsight die Query Profile-Daten zu einem einzigen leeren Knoten zusammen, anstatt den vollständigen Query Profile-Strukturbaum anzuzeigen.

In Abfrageverlauf (Query History) ausgeblendete Informationen

Bei Abfragen, die sich auf eine Snowflake Native App beziehen, werden die Felder query_text und error_message in der Abfragehistorie (Query History) in den folgenden Kontexten ausgeblendet:

  • Abfragen, die ausgeführt werden, wenn die App installiert oder aktualisiert wird.

  • Abfragen, die von einem untergeordneten Job einer gespeicherten Prozedur stammen, deren Eigentümer die App ist.

In jeder dieser Situationen ist die Zelle des Abfrageverlaufs in Snowsight leer.

In SQL-Befehlen und Ansichten ausgeblendete Informationen

Wenn ein Verbraucher den Befehl SHOW oder DESCRIBE verwendet, um Informationen zu dem Anwendungsobjekt oder zu den Objekten anzuzeigen, deren Eigentümer die App ist, werden Informationen zu Implementierungsdetails ausgeblendet. So werden beispielsweise Funktionsdefinitionen und der Funktionstext bei der Ausgabe dieser Befehle ausgeblendet.

Informationen zu Implementierungsdetails werden in den folgenden Kontexten in der ACCESS_HISTORY-Ansicht ausgeblendet:

  • Abfragen, die generiert werden, wenn die App installiert oder aktualisiert wird.

  • Abfragen, die von gespeicherten Prozeduren und benutzerdefinierten Funktionen generiert werden, deren Eigentümer die App ist.

Außerdem werden bei Ansichten, deren Eigentümer die App ist, Informationen zur Basistabelle ausgeblendet.

Blockierte Kontextfunktionen

Um Informationen zu schützen, die sich auf Objekte innerhalb eines Anwendungsobjekts beziehen, blockiert Snowflake Native App Framework die folgenden Kontextfunktionen:

Kontextfunktion

Blockiert in freigegebenem Inhalt (gibt null zurück)

Blockiert in Setup-Skripten und gespeicherten Prozeduren/UDFs, die der Snowflake Native App gehören (löst eine Ausnahme aus).

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

Freigegebene Inhalte schützen

Um die Vertraulichkeit und die Integrität der Dateninhalte eines Anbieters sicherzustellen, implementiert das Snowflake Native App Framework die folgende Einschränkung:

  • Freigegebene Objekte sind für ein Anwendungsobjekt und die installierte Snowflake Native App schreibgeschützt.

  • Die freigegebenen Objekte sind für Verbraucher nicht direkt sichtbar. Objekte werden nur über eine sichere Ansicht bereitgestellt, die installiert wird, wenn das Setup-Skript während der Installation der Snowflake Native App ausgeführt wird.

  • Nur der Anbieter kann die freigegebenen Inhalte aktualisieren.

  • Nur die folgenden Objekte können für ein Anwendungsobjekt oder eine installierte Snowflake Native App freigegeben werden. Diese Objekte müssen über bestimmte Berechtigungen verfügen:

    • Schemas: Den freigegebenen Inhalten eines Anwendungspakets kann nur die USAGE-Berechtigung erteilt werden.

    • Tabellen: Den freigegebenen Inhalten eines Anwendungspakets kann nur die SELECT-Berechtigung erteilt werden. Tabellen mit definierten Richtlinien (Zeilenzugriff, Maskierung, Tag-basiert usw.) können nicht freigegeben werden. Richtlinien können für die Objekte definiert werden, wenn diese für die Verbraucher zugänglich sind.

    • Ansichten: Für freigegebene Inhalte eines Anwendungspakets kann nur die SELECT-Berechtigung erteilt werden. Ansichten mit definierten Richtlinien, einschließlich Zeilenzugriffs-, Maskierungs-, Tag-basierte Richtlinien usw., können nicht freigegeben werden.

Bemerkung

Eine Ansicht bzw. alle Ansichten, aus denen sich eine Ansicht zusammensetzt, dürfen keine JavaScript-, Java-, Python- oder Scala-Funktionen enthalten.

Weitere Informationen dazu finden Sie unter Verbrauchern den Zugriff auf freigegebene Objekte gewähren.