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