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 리포지토리를 사용할 수 있습니다.

기존 계정의 경우 일회성 백필은 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;

Ref: 2280