Erteilen von Berechtigungen für benutzerdefinierte Funktionen¶
Unter diesem Thema sind die Mindestberechtigungen aufgeführt, die für Objekte erforderlich sind, um bestimmte SQL-Aktionen mit einer UDF oder UDTF ausführen zu können.
Unter diesem Thema:
Erteilung von Berechtigungen für UDFs und UDTFs¶
Um SQL-Aktionen auf einer UDF oder UDTF ausführen zu können, muss der ausführenden Person eine Rolle zugewiesen worden sein, die über die erforderlichen Berechtigungen verfügt. Zu diesen SQL-Aktionen gehören:
Erstellen der Funktion, z. B. mit CREATE FUNCTION oder mit der Snowpark-API.
Zuweisen der Eigentümerschaft der Funktion, um den Zugriff auf die Funktion zu löschen, zu ändern und zu verwalten, sei es über SQL oder die Snowpark-API.
Aufrufen der Funktion mit SQL oder über die Snowpark-API.
Der Rolle müssen Berechtigungen an Objekten zugewiesen werden, die sich auf die Funktion beziehen, einschließlich der Datenbank und des Schemas und (falls erforderlich) eines Stagingbereichs, der Funktionsabhängigkeiten enthält.
Um einer Rolle Berechtigungen für ein Objekt zu erteilen, verwenden Sie eine GRANT-Anweisung.
Mit dem folgenden Beispielcode wird my_role
die USAGE-Berechtigung für die Funktion my_java_udf
erteilt.
GRANT USAGE ON FUNCTION my_java_udf(number, number) TO my_role;
Erstellen von UDFs oder UDTFs¶
Das Erstellen, Verwalten und Ausführen einer Java-UDF/UDTF erfordert eine Rolle mit mindestens den folgenden Berechtigungen:
Objekt |
Berechtigungen |
Anmerkungen |
---|---|---|
Datenbank |
USAGE |
|
Schema |
USAGE, CREATE FUNCTION |
|
Stagingbereich |
USAGE (externer Stagingbereich) oder READ (interner Stagingbereich) |
Erforderlich, wenn die Funktion von Dateien in einem Stagingbereich abhängt oder aus ihnen liest. Dazu gehören die folgenden Stagingdateien:
|
Eigentümerschaft von UDFs oder UDTFs¶
Nachdem eine UDF/UDTF erstellt wurde, muss der Eigentümer der Funktion (d. h. die Rolle mit OWNERSHIP-Berechtigung für die Funktion) mindestens über die folgenden Berechtigungen verfügen:
Objekt |
Berechtigung |
Anmerkungen |
---|---|---|
Datenbank |
USAGE |
|
Schema |
USAGE |
|
Stagingbereich |
USAGE (externer Stagingbereich) oder READ (interner Stagingbereich) |
Erforderlich, wenn die Funktion von Dateien in einem Stagingbereich abhängt oder aus ihnen liest. Dazu gehören die folgenden Stagingdateien:
|
Funktion |
OWNERSHIP |
Aufrufen von UDFs oder UDTFs¶
Eine Rolle, die eine UDF oder UDTF aufruft, um unstrukturierte Daten zu verarbeiten, muss mindestens über die folgenden Berechtigungen verfügen:
Objekt |
Berechtigung |
Anmerkungen |
---|---|---|
Datenbank |
USAGE |
|
Schema |
USAGE |
Schema, das die Objekte auf Schemaebene in dieser Tabelle enthält. Wenn die Objekte in mehreren Schemas enthalten sind, ist die USAGE-Berechtigung für jedes Schema erforderlich. |
Stagingbereich |
USAGE (externer Stagingbereich) oder READ (interner Stagingbereich) |
Erforderlich, wenn die Funktion von Dateien in einem Stagingbereich abhängt oder aus ihnen liest. Dazu gehören die folgenden Stagingdateien:
|
Funktion |
USAGE |
Erforderlich, wenn eine andere Person als der Eigentümer der Funktion die Funktion aufruft. USAGE auf der Funktion muss einer Rolle erteilt werden, die einer Person zugewiesen ist, die die Funktion aufruft. |