GRANT OWNERSHIP 명령: 공유 데이터베이스에 대한 소유권 이전이 허용 안 됨

주의

이 동작 변경 사항은 2023_06 번들에 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

GRANT OWNERSHIPDROP ROLE 명령은 다음과 같이 동작합니다.

이전

데이터베이스에 대한 USAGE 권한을 공유에 부여하면 GRANT OWNERSHIP 명령을 실행하여 데이터베이스에 대한 OWNERSHIP 권한을 다른 역할로 이전할 수 있습니다. 예:

GRANT USAGE ON DATABASE mydb TO SHARE myshare;
GRANT OWNERSHIP ON DATABASE mydb TO ROLE r2 REVOKE CURRENT GRANTS;
Copy

또한 공유 데이터베이스에 대해 OWNERSHIP 권한이 있는 역할을 삭제할 수 있습니다.

DROP ROLE r2;
Copy
현재

공유 데이터베이스의 소유권을 다른 역할로 이전하고 COPY CURRENT GRANTS 절을 사용할 수 있지만, 공유 데이터베이스에 대한 소유권을 다른 역할로 이전하고 REVOKE CURRENT GRANTS 절을 사용할 수는 없습니다. 이 작업을 수행하려고 하면 Snowflake에서 다음 오류 메시지를 반환합니다.

Cannot transfer ownership on a database that is granted to a share

이 오류 메시지를 방지하고 OWNERSHIP 권한을 다른 역할로 이전하려면 공유에서 데이터베이스에 대한 USAGE 권한을 취소하고 데이터베이스에 대한 OWNERSHIP 권한을 다른 역할로 이전한 다음 데이터베이스에 대한 USAGE 권한을 공유에 부여하십시오. 예:

REVOKE USAGE ON DATABASE mydb FROM SHARE myshare;
GRANT OWNERSHIP ON DATABASE mydb TO ROLE r2;
GRANT USAGE ON DATABASE mydb TO SHARE r2;
Copy

또한 공유 데이터베이스에 대해 OWNERSHIP 권한이 있는 역할을 삭제하려고 하면 Snowflake에서 취할 조치 사항에 대한 지침과 함께 다음 오류 메시지를 반환합니다.

Cannot drop a role that is the owner of one or more shared databases. Run 'SHOW GRANTS TO ROLE <role_name>' to find these shared
databases and transfer their ownership to appropriate role using 'GRANT OWNERSHIP ON DATABASE <database_name> TO ROLE
<target_role_name> COPY CURRENT GRANTS'.

참조: 1181