ユーザー定義関数の権限付与

このトピックでは、 UDF または UDTF で特定の SQL アクションを実行するためにオブジェクトに必要な最小限の権限をリストします。

このトピックの内容:

UDFs および UDTFs の権限の付与

UDF または UDTF で SQL アクションを実行するには、アクションを実行する人に、必要な権限が付与されたロールが割り当てられている必要があります。これらの SQL アクションには次が含まれます。

  • CREATE FUNCTIONSnowpark API などを使用した関数の作成。

  • SQL またはSnowpark APIを介した、関数へのアクセスを削除、変更、および管理するための関数の所有。

  • SQL またはSnowpark API を使用した関数の呼び出し。

ロールには、データベースやスキーマ、および関数の依存関係を保持するステージ(必要な場合)など、関数に関連するオブジェクトに対する権限を割り当てる必要があります。

オブジェクトに対する権限をロールに付与するには、 GRANT ステートメントを使用します。

次の例のコードは、関数 my_java_udf に対する USAGE 権限を my_role に付与します。

GRANT USAGE ON FUNCTION my_java_udf(number, number) TO my_role;
Copy

UDFs または UDTFs の作成

UDF または UDTF の作成、管理、および実行には、少なくとも次の権限を持つロールが必要です。

オブジェクト

権限

メモ

データベース

USAGE

スキーマ

USAGE, CREATE FUNCTION

ステージ

USAGE (外部ステージ)または READ (内部ステージ)

関数がステージ上のファイルに依存するか、ファイルから読み取る場合に必要です。これには、次のステージングされたファイルが含まれます。

  • UDF のハンドラーコードを含むファイル。ステージングされたハンドラーとインラインハンドラーの詳細については、 ハンドラーコードのインラインまたはステージ上での保持 をご参照ください。

  • JAR ファイル、Pythonモジュール、.zipファイルなど、ハンドラーコードが依存関係として必要とするライブラリ。詳細については、 コードで依存関係を利用できるようにする方法 をご参照ください。

  • ハンドラーのコードによって読み取られたコンテンツを含んでいるファイル。これには、ハンドラーによって処理される非構造化データが含まれます。

UDFs または UDTFs の所有

UDF または UDTF が作成された後、関数の所有者(関数に対する OWNERSHIP 権限があるロールを持つ人)には、少なくとも次の権限が必要です。

オブジェクト

権限

メモ

データベース

USAGE

スキーマ

USAGE

ステージ

USAGE (外部ステージ)または READ (内部ステージ)

関数がステージ上のファイルに依存するか、ファイルから読み取る場合に必要です。これには、次のステージングされたファイルが含まれます。

  • UDF のハンドラーコードを含むファイル。ステージングされたハンドラーとインラインハンドラーの詳細については、 ハンドラーコードのインラインまたはステージ上での保持 をご参照ください。

  • JAR ファイル、Pythonモジュール、.zipファイルなど、ハンドラーコードが依存関係として必要とするライブラリ。詳細については、 コードで依存関係を利用できるようにする方法 をご参照ください。

  • ハンドラーのコードによって読み取られたコンテンツを含んでいるファイル。これには、ハンドラーによって処理される非構造化データが含まれます。

関数

OWNERSHIP

UDFs または UDTFs の呼び出し

UDF または UDTF を呼び出すロールには、少なくとも次の権限が必要です。

オブジェクト

権限

メモ

データベース

USAGE

スキーマ

USAGE

このテーブルのスキーマレベルのオブジェクトを含むスキーマ。オブジェクトが複数のスキーマに含まれている場合は、それぞれに USAGE 権限が必要です。

ステージ

USAGE (外部ステージ)または READ (内部ステージ)

関数がステージ上のファイルに依存するか、ファイルから読み取る場合に必要です。これには、次のステージングされたファイルが含まれます。

  • UDF のハンドラーコードを含むファイル。ステージングされたハンドラーとインラインハンドラーの詳細については、 ハンドラーコードのインラインまたはステージ上での保持 をご参照ください。

  • JAR ファイル、Pythonモジュール、.zipファイルなど、ハンドラーコードが依存関係として必要とするライブラリ。詳細については、 コードで依存関係を利用できるようにする方法 をご参照ください。

  • ハンドラーのコードによって読み取られたコンテンツを含んでいるファイル。これには、ハンドラーによって処理される非構造化データが含まれます。

関数

USAGE

関数の所有者以外の誰かが関数を呼び出す場合に必要です。関数の USAGE は、関数を呼び出す人に割り当てられたロールに付与する必要があります。