PUBLICロールに付与されるPYPI_REPOSITORY_USERデータベースロール

PythonのUDFs、UDTFs、UDAFs、およびストアドプロシージャの作成時に共有PyPIリポジトリのパッケージを使用するには、ユーザーは``PYPI_REPOSITORY_USER``データベースロールを持っている必要があります。この変更は、デフォルトで``PYPI_REPOSITORY_USER``データベースロールを持つロールに影響します。

変更前:

共有PyPIリポジトリ(snowflake.snowpark.pypi_shared_repository)へのアクセスはオプトインです。ユーザーが共有PyPIリポジトリのパッケージを使用するには、その前にアカウント管理者が明示的に``PYPI_REPOSITORY_USER``データベースロールを付与する必要があります。

GRANT DATABASE ROLE snowflake.snowpark.pypi_repository_user TO ROLE my_role;
変更後:

新しいアカウントの場合、Snowflakeはアカウント作成時に``PUBLIC``ロールに``PYPI_REPOSITORY_USER``データベースロールを付与するため、アカウント内のすべてのユーザーはデフォルトで共有PyPIリポジトリを使用できます。

既存のアカウントの場合、1回限りのバックフィルによって``PUBLIC``ロールに``PYPI_REPOSITORY_USER``データベースロールが付与されます。

つまりユーザーは、アカウント管理者からの明示的な付与を必要とせずに、任意のロールを使用して、共有PyPIリポジトリからパッケージを使用するPython関数やプロシージャを作成できます。

この変更後に共有PyPIリポジトリへのアクセスを制限する場合は、事前にオプトアウトするか、事後にアクセスを取り消すことができます。

-- Proactive opt-out via account parameter (only available before the change is rolled out)
ALTER ACCOUNT SET ENABLE_PYPI_REPOSITORY_USER_PUBLIC_GRANT = FALSE;

-- Reactive revocation
REVOKE DATABASE ROLE snowflake.snowpark.pypi_repository_user FROM ROLE PUBLIC;

-- Optionally grant to specific roles
GRANT DATABASE ROLE snowflake.snowpark.pypi_repository_user TO ROLE data_science;

参照:2280