Zugriff auf ein Konto für Verbraucher zulassen¶
Unter diesem Thema wird beschrieben, wie ein Verbraucher einer Snowflake Native App erlauben kann, Objekte in seinem Konto zu erstellen und darauf zuzugreifen. Dazu gehören das Erteilen der von der App angeforderten Berechtigungen und das Gewähren des Zugriffs auf vorhandene Objekte durch die Verwendung von Referenzen. Außerdem wird beschrieben, wie Sie einer App erlauben, externe und Apache Iceberg™-Tabellen zu verwenden, die ein Anbieter in der App freigibt.
Von einer App angefragte Berechtigungen und Referenzen¶
In einer einfachen Snowflake Native App werden alle von der Anwendung geforderten Objekte innerhalb des Anwendungsobjekts erstellt, wenn das Setup-Skript während der Installation ausgeführt wird. Alle von der Anwendung geforderten Objekte werden in der installierten Anwendung erstellt und in ihr aufgerufen. Der Verbraucher muss in seinem Konto keine Aktionen ausführen.
Einige Apps können den Verbraucher jedoch auffordern, die folgenden Typen von Aktionen in seinem Konto auszuführen:
Erstellen einer Datenbank oder eines Warehouses
Ausführen von Aufgaben (Tasks)
Zugriff auf vorhandene Objekte, z. B. eine Tabelle.
Es gibt zwei Typen von Zugriff, die eine Snowflake Native App anfordern kann:
Berechtigungen, die es der App erlauben, bestimmte Operationen auf Kontoebene auszuführen. Eine App kann die folgenden globalen Berechtigungen anfordern:
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
MANAGE WAREHOUSES
CREATE DATABASE
CREATE COMPUTE POOL
BIND SERVICE ENDPOINT
READ SESSION
Einige Apps können auch die IMPORTED PRIVILEGES-Berechtigung für die SNOWFLAKE-Datenbank anfordern. Weitere Informationen dazu finden Sie unter Berechtigung IMPORTED PRIVILEGES für die SNOWFLAKE-Datenbank erteilen.
Referenzen, die es der Anwendung ermöglichen, auf Objekte zuzugreifen, die bereits im Konto des Verbrauchers existieren und sich außerhalb des Anwendungsobjekts befinden. Ein Anbieter definiert die von der App benötigten Referenzen in der Datei
manifest.yml
.Nach Installation der App kann vom Verbraucher der Zugriff auf ein Objekt autorisiert werden, indem eine Referenz erstellt wird, die das Objekt mit der App verknüpft.
Eine App kann den Zugriff auf die folgenden Typen von Objekten und die entsprechenden Berechtigungen anfordern:
Objekttyp
Zulässige Berechtigungen
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
Ein Verbraucher kann diese Anforderungen über Snowsight genehmigen oder indem SQL-Befehle ausgeführt werden, wie in den folgenden Abschnitten beschrieben.
Bemerkung
Wenn Sie der App nicht die angeforderten Berechtigungen erteilen oder Verweise auf das angeforderte Objekt zuordnen, funktionieren Teile der App möglicherweise nicht ordnungsgemäß.
Zugriffsanforderungen mit Snowsight verwalten¶
Wenn ein Anbieter in einer Snowflake Native App eine Benutzerschnittstelle implementiert, kann ein Verbraucher über Snowsight Folgendes ausführen.
Anzeigen und Erteilen globaler Berechtigungen
Autorisieren des Zugriffs auf bestehende Objekte im Verbraucherkonto
Globale Berechtigungen erteilen¶
Um nach Installation einer Anwendung Berechtigungen zu erteilen oder Referenzen zu erstellen, gehen Sie wie folgt vor:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Data Products » Apps aus.
Wählen Sie die App aus.
Wählen Sie auf der Symbolleiste das Symbol Security aus.
Wählen Sie die Registerkarte Privileges aus.
Die von der App angefragten Berechtigungen auf Kontoebene werden unter Account level privileges angezeigt.
Wählen Sie im Bereich Account-level privileges die Option Review aus, und aktivieren Sie dann die Schieberegler jeder Berechtigung, die Sie zuweisen möchten.
Wählen Sie Save aus.
Berechtigungen und Zugriff auf Objekte entziehen¶
Um Berechtigungen zu entziehen oder den Zugriff auf Objekte zu entfernen, gehen Sie wie folgt vor:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Data Products » Apps aus.
Wählen Sie die App aus.
Wählen Sie auf der Symbolleiste das Symbol Security aus.
Wählen Sie die Registerkarte Privileges aus.
Um eine globale Berechtigung zu entziehen, wählen Sie die Schaltfläche Edit aus, und schalten Sie dann den Schieberegler für die Berechtigung, die Sie widerrufen möchten, um.
Um den Zugriff auf ein bestimmtes Objekt zu entziehen, klicken Sie auf die Schaltfläche Delete, und wählen Sie dann Revoke Privilege aus.
Bemerkung
Das Entziehen von Berechtigungen oder des Zugriffs auf Objekte kann dazu führen, dass die Anwendung instabil wird oder nicht mehr funktioniert.
Berechtigungen für eine App mit SQL-Befehlen verwalten¶
Wenn Ihr App-Entwickler keine Weboberfläche für die Erteilung von Berechtigungen implementiert, müssen Sie die Anfragen für die App mit SQL-Befehlen verwalten.
Anzeigen der von einer App angefragten Berechtigungen¶
Wenn ein Anbieter die von der App benötigten Berechtigungen angibt, wird die Anfrage für die Berechtigung als Teil der installierten App aufgenommen. Sie können diese Berechtigungen nach der Installation der App anzeigen.
Um die für eine Anwendung erforderlichen Berechtigungen anzuzeigen, führen Sie den Befehl SHOW PRIVILEGES wie im folgenden Beispiel gezeigt aus:
SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Einer Snowflake Native App Berechtigungen erteilen¶
Nachdem ein Verbraucher die von einer App angeforderten Berechtigungen ermittelt hat, kann er der App diese Berechtigungen erteilen.
Um einer App beispielsweise die Berechtigung EXECUTE TASK zu erteilen, führen Sie den Befehl GRANT PRIVILEGE aus, wie im folgenden Beispiel gezeigt:
GRANT EXECUTE TASK ON ACCOUNT TO APPLICATION hello_snowflake_app;
Einer Snowflake Native App die Berechtigung MANAGE WAREHOUSES erteilen¶
Die Berechtigung MANAGE WAREHOUSES ermöglicht es einer App, Warehouses innerhalb des Kontos des Verbrauchers zu erstellen, zu ändern und zu verwenden. Um einer App die Berechtigung MANAGE WAREHOUSES zu erteilen, verwenden Sie GRANT, wie im folgenden Beispiel gezeigt:
GRANT MANAGE WAREHOUSES ON ACCOUNT TO APPLICATION hello_snowflake_app;
Berechtigung IMPORTED PRIVILEGES für die SNOWFLAKE-Datenbank erteilen¶
Einige Anwendungen könnten die Anfrage stellen, dass ein Verbraucher die Berechtigung IMPORTED PRIVILEGES für die SNOWFLAKE-Datenbank in seinem Konto erteilt. Diese Berechtigung kann nur mit SQL-Befehlen erteilt werden. Sie kann nicht über Snowsight erteilt werden. Wenn eine App diese Berechtigung erfordert, sollte der Anbieter diese Anforderung an den Verbraucher weitergeben, z. B. in der README-Datei der App.
Um die Berechtigung IMPORT für die SNOWFLAKE-Datenbank zu erteilen, führen Sie den folgenden Befehl aus:
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO APPLICATION hello_snowflake_app;
Bemerkung
Die Berechtigung IMPORTED PRIVILEGES ermöglicht der App den Zugriff auf Informationen zu Nutzung und Kosten im Zusammenhang mit dem Verbraucherkonto. Bevor der Verbraucher diese Berechtigung erteilt, muss er sicher sein, dass diese Informationen für die App freigegeben werden sollen.
Aktivieren Sie externe und Apache Iceberg™-Tabellen¶
Die Snowflake Native App Framework ermöglicht es Anbietern, externe und Apache Iceberg™-Tabellen in den Anbieterfreigaben mit Verbrauchern in der App zu teilen. Allerdings müssen die Verbraucher der App die Berechtigung zum Zugriff auf diese Tabellen erteilen.
Hinweise zu Sicherheit und Kosten¶
Wenn Sie einer App erlauben, auf eine externe oder Iceberg-Tabelle zuzugreifen, sollten Sie Folgendes beachten:
Externe und Iceberg-Tabellen können ein Risiko der Datenexfiltration für den Verbraucher darstellen. Wenn eine Anwendung beispielsweise eine Ansicht mit einer externen Tabelle bereitstellt, kann ein Anbieter anhand der Zugriffsprotokolle seines Cloud-Anbieters die Arten von Abfragen ermitteln, die der Verbraucher stellt.
Bei externen und Iceberg-Tabellen können zusätzliche Kosten für die Nutzung des Datenein- und -ausgangs anfallen, wenn sich der Objektspeicher, der die Tabelle enthält, nicht in derselben Region befindet, in der die App veröffentlicht wird.
Aktivieren Sie externe und Iceberg-Tabellen mit Snowsight¶
Anbieter können die App so konfigurieren, dass allen Verbrauchern ein Dialog angezeigt wird, um einer App den Zugriff auf eine externe oder Iceberg-Tabelle zu ermöglichen.
Um einer App den Zugriff auf eine externe oder Iceberg-Tabelle zu ermöglichen:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Data Products » Apps aus.
Wählen Sie die App aus.
Wählen Sie auf der Symbolleiste das Symbol Security aus.
Wählen Sie die Registerkarte Privileges aus.
Wählen Sie unter External data access die Option Review aus.
Wählen Sie Enable aus.
Aktivieren Sie externe und Iceberg-Tabellen mit SQL¶
Um den Zugriff auf externe und Iceberg-Tabellen über SQL zu ermöglichen, verwenden Sie die System-Funktion SET_APPLICATION_RESTRICTED_FEATURE_ACCESS wie im folgenden Beispiel gezeigt:
SELECT SYSTEM$SET_APPLICATION_RESTRICTED_FEATURE_ACCESS(hello_snowflake_app, 'external_data', ‘{"allowed_cloud_providers" : "all"}’);
Mit diesem Befehl kann die App hello_snowflake_app
auf die externen oder Iceberg-Tabellen zugreifen, die die App verwendet.
Um festzustellen, ob externe und Iceberg-Tabellen für eine App aktiviert wurden, verwenden Sie die System-Funktion LIST_APPLICATION_RESTRICTED_FEATURES wie im folgenden Beispiel gezeigt:
SYSTEM$LIST_APPLICATION_RESTRICTED_FEATURES('hello_snowflake_app')
Diese System-Funktion gibt ein JSON-Objekt zurück, das anzeigt, ob externe und Iceberg-Tabellen für die hello_snowflake_app
erlaubt sind.