Gewährung von beschränkten Aufruferrechten für eine ausführbare Datei in einer App¶
In diesem Thema wird beschrieben, wie ein Verbrauchender einer ausführbaren Datei in einer Snowflake Native App Berechtigungen für den Aufrufenden gewähren kann.
Allgemeine Informationen zu Eigentümerrechten und beschränkten Aufruferrechten in einer Anwendung¶
Im Zusammenhang mit einer App werden die folgenden Typen von ausführbaren Dateien unterstützt:
Gespeicherte Prozeduren im Besitz der Anwendung
In Anwendungen mit Containern verfügbare Dienste
Alle diese Typen von ausführbaren Dateien können so konfiguriert werden, dass sie entweder die Rechte des Besitzenden oder die beschränkten Rechte des Aufrufenden verwenden.
- Eigentümerrechte:
Standardmäßig verwenden ausführbare Dateien innerhalb einer App die Rechte des Besitzenden, was bedeutet, dass sie mit den Berechtigungen ausgeführt werden, die dem Besitzenden der ausführbaren Datei, bei der es sich um die App selbst handelt, erteilt wurden.
Die Rechte des Besitzenden ermöglichen es beispielsweise einer ausführbaren Datei, auf Daten im Konto des Anbietenden zuzugreifen und diese Daten dem Verbrauchenden zu präsentieren. Sie ermöglichen dem Verbrauchenden jedoch keinen direkten Zugriff auf die Daten.
Beispiel: Der Befehl CREATE PROCEDURE erstellt eine gespeicherte Prozedur, die standardmäßig die Rechte des Besitzenden verwendet. Verbrauchende können die gespeicherte Prozedur aufrufen, wenn ihnen der Zugriff über Anwendungsrollen gewährt wurde. Wenn die App über die Berechtigungen zum Ausführen einer Operation verfügt, kann die gespeicherte Prozedur diese Operation ausführen.
Allgemeine Informationen zu Rechten von Besitzenden finden Sie unter Erläuterungen zu gespeicherten Prozeduren mit Aufruferrechten und Eigentümerrechten.
- Beschränkte Aufruferrechte:
Beschränkte Rechte des Aufrufenden erlauben es einer ausführbaren Datei, mit den Rechten des Aufrufenden ausgeführt zu werden, schränken aber ein, mit welchen Berechtigungen des Aufrufenden die ausführbare Datei läuft. Bei beschränkten Aufruferrechten kann eine ausführbare Datei, die einer App gehört, nicht mit einer bestimmten Berechtigung ausgeführt werden, es sei denn, ein Administrator des Verbraucherkontos gestattet dies ausdrücklich über den Befehl GRANT CALLER.
Bemerkung
Um zu gewährleisten, dass ausführbare Dateien in einer App sicher sind, unterstützen Snowflake Native Apps keine uneingeschränkten Rechte des Aufrufenden.
Allgemeine Informationen zu beschränkten Aufruferrechten finden Sie unter Beschränkte Aufruferrechte.
Umfang der eingeschränkten Rechte des Aufrufenden in einer App¶
Snowflake empfiehlt, dass Verbrauchende Aufrufenden Rechte auf Container-Ebene gewähren und nicht für bestimmte Objekte in ihrem Konto.
- Schemaebene:
Gewährt Aufrufenden Rechte für das Schema, aber keine Rechte für Objekte im Schema. Beispiel: Die Gewährung der Berechtigung CALLER USAGE für den Aufrufenden für ein Schema gewährt nur die USAGE-Berechtigung für das Schema. Um Zugriff auf ein bestimmtes Objekt, z. B. eine Funktion, zu gewähren, verwenden Sie GRANT INHERITED CALLER USAGE ON ALL FUNCTIONS IN SCHEMA.
- Datenbankebene:
Das Erteilen von Rechten für Aufrufende auf Datenbankebene erlaubt nur der ausführbaren Datei den Zugriff auf die Datenbank und alle Schemas in der Datenbank. Beispiel: Die Gewährung der Berechtigung CALLER USAGE für den Aufrufenden gewährt die USAGE-Berechtigung für die Datenbank. Um jedoch Zugriff auf ein bestimmtes Objekt zu gewähren, müssen Sie den folgenden Befehl verwenden:
GRANT INHERITED CALLER USAGE ON ALL FUNCTIONS IN DATABASE;
- Kontoebene:
Das Erteilen von Berechtigungen für Aufrufende auf Kontoebene ermöglicht es einer ausführbaren Datei, Operationen auf Kontoebene durchzuführen. Das Gewähren der Berechtigung CALLER USAGE für den Aufrufenden ermöglicht der ausführbaren Datei nur den Zugriff auf das Konto, sie bietet keinen Zugriff auf Objekte innerhalb des Kontos.
Um den Zugriff auf bestimmte Objekte zu ermöglichen, gewähren Sie Zugriff auf bestimmte Typen von Objekten im Konto. Beispiel: Das Gewähren der Berechtigung CREATE DATABASE für den Aufrufenden ermöglicht es einer ausführbaren Datei, Datenbanken im Konto des Verbrauchenden zu erstellen, wie im folgenden Beispiel gezeigt:
GRANT CALLER CREATE DATABASE ON ACCOUNT TO my_app;
Berechtigungen für Aufrufende auf Kontoebene, die einer App gewährt werden können¶
Anbietende können eine ausführbare Datei in einer App so konfigurieren, dass sie die folgenden Berechtigungen für Aufrufende auf Kontoebene verwendet:
CREATE DATABASE
EXECUTE ALERT
EXECUTE MANAGED TASK
EXECUTE TASK
READ SESSION
VIEW-LINEAGE
Bemerkung
Verbrauchende sollten Vorsicht walten lassen, wenn sie einer App Berechtigungen für Aufrufende auf Kontoebene gewähren.
Erforderliche Berechtigungen zur Gewährung beschränkter Aufruferrechte für eine App¶
Um als Verbraucher einer App Aufruferrechte zu gewähren, müssen Sie die Rolle ACCOUNTADMIN oder eine Rolle mit der Berechtigung MANAGE CALLER GRANTS verwenden. Weitere Informationen dazu finden Sie unter GRANT CALLER.
Einer ausführbaren Datei in einer App über Snowsight Aufruferberechtigungen gewähren¶
Mit Snowsight können Sie einer App Aufruferberechtigungen für Objekte im Konto des Verbrauchers gewähren.
Bemerkung
Um andere Aufgaben auszuführen, wie z. B. das Widerrufen von Berechtigungen für Aufrufende über eine App, das Gewähren von Berechtigungen für Aufrufende für eine bestimmte Tabelle oder das Gewähren von Rechten für Aufrufende auf Kontoebene, müssen Sie die entsprechenden SQL-Befehle verwenden.
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Catalog » Apps aus.
Wählen Sie eine App.
Klicken Sie auf das Symbol Settings in der Symbolleiste und wählen Sie dann die Registerkarte Privileges aus.
Wenn die App beschränkte Aufruferrechte unterstützt, wird der Bereich Restricted caller’s rights auf der Registerkarte Privileges angezeigt.
Bemerkung
Sie können nur dann Aufruferrechte mittels Snowsight gewähren, wenn der Anbieter die App so konfiguriert hat, dass die UI der beschränkten Aufruferrechte angezeigt wird.
Klicken Sie auf Add grants.
Wählen Sie einen Access scope aus.
Damit wird festgelegt, ob sich die Aufruferrechte auf ein Schema, eine Datenbank oder auf die Ebene des Kontos beziehen. Sie sollten die Option mit dem geringstmöglichen Umfang wählen, um der App keine unnötigen Rechte zu gewähren.
Vorsicht
Seien Sie vorsichtig, wenn Sie den Geltungsbereich auf Kontoebene auswählen, da dieser der App die Aufruferrechte für alle unterstützten Objekttypen gewähren kann.
Wenn Sie den Schema- oder Datenbankbereich ausgewählt haben, wählen Sie das Schema oder die Datenbank nach Bedarf aus.
Bemerkung
Sie können mehrere Schemas oder Datenbanken auswählen. Sie können auch Schemas in verschiedenen Datenbanken auswählen.
Klicken Sie auf Next.
Wählen Sie die Art der Objekte aus, für die Aufruferrechte gewährt werden sollen.
Verwenden Sie die Suche, um einen Objekttyp zu finden. Die Liste der Objekttypen hängt von dem Bereich ab, den Sie oben gewählt haben.
Wenn Sie einen Objekttyp auswählen, erweitert sich der Eintrag des Objekts in der Liste um die verfügbaren Berechtigungen für jeden Objekttyp.
Wählen Sie die Berechtigungen, die Sie gewähren möchten.
Sie können für jeden Objekttyp mehrere Berechtigungen auswählen. Sie können auch Berechtigungen für andere Objekttypen auswählen.
Bemerkung
Snowflake gewährt automatisch die Berechtigung USAGE für alle von Ihnen ausgewählten Objekte.
Klicken Sie auf Next.
Wählen Sie Grant summary, um den Umfang, die Objekttypen und die Berechtigungen, die Sie ausgewählt haben, zu überprüfen.
Bemerkung
Alle Objekte des ausgewählten Typs, die in Zukunft erstellt werden, werden mit denselben Berechtigungen unter Verwendung des ausgewählten Bereichs und Objekttyps erstellt.
Wählen Sie SQL, um die GRANT CALLER-Befehle anzuzeigen, die Snowsight ausführen wird.
Bemerkung
Bei Bedarf können Sie diese Befehle kopieren und sie manuell in einem Arbeitsblatt ausführen.
Klicken Sie auf Save.
Der Bereich, die Objekte und die Berechtigungen, die Sie ausgewählt haben, werden im Abschnitt Restricted caller’s rights section angezeigt.
Um die von Ihnen ausgewählten Berechtigungen zu ändern, klicken Sie auf Edit und wählen Sie die gewünschten Berechtigungen aus oder ab.
Einer ausführbaren Datei in einer App über SQL Aufruferberechtigungen gewähren¶
Wenn Sie eine App konfigurieren, die beschränkte Aufruferrechte anfragt, führen Sie die folgenden Aufgaben durch, um der App Aufruferberechtigungen zu gewähren:
Überprüfen Sie das Freigabeangebot der App, um festzustellen, ob der Anbieter mitgeteilt hat, dass die App ausführbare RCR-Dateien enthält.
Gewähren Sie die im Freigabeangebot genannten Aufruferberechtigungen. Das folgende Beispiel zeigt, wie Sie den Befehl GRANT CALLER verwenden, um die Berechtigung SELECT für alle Tabellen in einer bestimmten Datenbank und einem bestimmten Schema zu erteilen:
GRANT CALLER USAGE ON DATABASE db1 TO APPLICATION hello_snowflake_app; GRANT CALLER USAGE ON SCHEMA db1.sch1 TO APPLICATION hello_snowflake_app; GRANT INHERITED CALLER SELECT ON ALL TABLES IN SCHEMA db.sch1 TO APPLICATION hello_snowflake_app;
Dieser Befehl ermöglicht einer ausführbaren Datei mit beschränkten Aufruferrechten den Zugriff auf Abfragen aller Tabellen mit der Datenbank und dem Schema
db.sch1. Zusätzlich zu der Berechtigung SELECT für alle Tabellen müssen Sie auch USAGE für die Datenbank und das Schema gewähren.