Gewährung von beschränkten Aufruferrechten für eine ausführbare Datei in einer App

Unter diesem Thema wird beschrieben, wie Sie einer ausführbaren Datei in einer App beschränkte Aufruferrechte gewähren.

Allgemeine Informationen zu Eigentümerrechten und beschränkten Aufruferrechten in einer Anwendung

Innerhalb einer Snowflake Native App werden ausführbare Dateien entweder mit Eigentümerrechten oder beschränkten Aufruferrechten ausgeführt. Im Rahmen von Snowflake Native App Framework werden die folgenden Arten von ausführbaren Dateien unterstützt:

  • Gespeicherte Prozeduren im Besitz der Anwendung

  • In Anwendungen mit Containern verfügbare Dienste

Eigentümerrechte:

Ausführbare Dateien, die Eigentümerrechte verwenden, werden mit den Berechtigungen ausgeführt, die dem Eigentümer der ausführbaren Datei gewährt wurden. Standardmäßig verwenden ausführbare Dateien innerhalb einer App Eigentümerrechte. Bei einer Anwendung ist der Eigentümer der ausführbaren Datei die Anwendung selbst.

Beschränkte Aufruferrechte:

Beschränkte Aufruferrechte erlauben es einer ausführbaren Datei, mit Aufruferrechten zu laufen, schränken aber die Berechtigungen des Aufrufers ein, mit denen die ausführbare Datei läuft. Bei beschränkten Aufruferrechten kann eine ausführbare Datei, die einer Anwendung gehört, nicht mit einer bestimmten Berechtigung ausgeführt werden, es sei denn, ein Administrator im Konto des Benutzers erlaubt dies ausdrücklich mit dem Befehl /sql-reference/sql/grant-caller.

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. den Entzug von Aufruferberechtigungen für eine App oder die Gewährung von Aufruferrechten auf eine bestimmte Tabelle, müssen Sie die entsprechenden SQL-Befehle verwenden.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Data Products » Apps aus.

  3. Wählen Sie eine App.

  4. Klicken Sie auf das Symbol Settings in der Symbolleiste und wählen Sie dann die Registerkarte Privileges aus.

  5. 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.

  6. Klicken Sie auf Add grants.

  7. 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.

  8. 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.

  1. Klicken Sie auf Next.

  2. 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.

  3. 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.

  4. Klicken Sie auf Next.

  5. 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.

  6. 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.

  7. 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:

  1. Überprüfen Sie das Freigabeangebot der App, um festzustellen, ob der Anbieter mitgeteilt hat, dass die App ausführbare RCR-Dateien enthält.

  2. 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;
    
    Copy

    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.