GRANT OWNERSHIP 명령: 공유 데이터베이스에 대한 소유권 이전이 허용 안 됨¶
GRANT OWNERSHIP 및 DROP 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