Zugriff auf eine Snowflake Native App gewähren¶
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.
Allgemeine Informationen zu den von einer Anwendung angeforderten Berechtigungen und Referenzen¶
In einer einfachen Snowflake Native App werden alle von der App benötigten Objekte innerhalb des APPLICATION-Objekts erstellt, wenn das Setup-Skript während der Installation ausgeführt wird. Alle von der Anwendung benötigten Objekte werden in der installierten Anwendung erstellt und der Zugriff auf sie erfolgt innerhalb dieser Anwendung. 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
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 App ermöglichen, auf Objekte zuzugreifen, die bereits im Verbraucherkonto vorhanden sind, sich aber außerhalb des APPLICATION-Objekts 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 Anwendung aus.
Wählen Sie auf der Symbolleiste das Symbol Security aus.
Die von der Anwendung angeforderten 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 Anwendung aus.
Wählen Sie auf der Symbolleiste das Symbol Security 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 der Anwendungsentwickler keine Schnittstelle für das Erteilen von Berechtigungen implementiert, müssen Sie die Zugriffsanforderungen für die Anwendung mit SQL-Befehlen verwalten.
Von einer Anwendung angeforderte Berechtigungen anzeigen¶
Wenn ein Anbieter die von der Anwendung benötigten Berechtigungen angibt, werden die Berechtigungsanforderungen als Teil der installierten Anwendung integriert. Sie können diese Berechtigungen nach Installation der Anwendung einsehen.
Um die Berechtigungen anzuzeigen, die von einer Anwendung angefordert wurden, führen Sie den Befehl SHOW PRIVILEGES aus, wie im folgenden Beispiel gezeigt:
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 Anwendung, Warehouses innerhalb des Verbraucherkontos zu erstellen, zu ändern und zu nutzen. 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 verlangen möglicherweise, dass einem Verbraucher die Berechtigung IMPORTED PRIVILEGES für die SNOWFLAKE-Datenbank in seinem Konto erteilt wird. Diese Berechtigung kann nur mit SQL-Befehlen erteilt werden. Sie kann nicht über Snowsight erteilt werden. Wenn eine Anwendung diese Berechtigung anfordert, muss der Anbieter dem Verbraucher diese Anforderung mitteilen, z. B. in der README-Datei der Anwendung.
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.