DROP DATABASE ROLE¶
시스템에서 지정된 데이터베이스 역할을 제거합니다.
구문¶
DROP DATABASE ROLE [ IF EXISTS ] <name>
매개 변수¶
name
데이터베이스 역할의 식별자(즉, 이름)를 지정하며, 역할이 생성되는 데이터베이스에서 고유해야 합니다.
식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.식별자가
db_name.database_role_name
형식으로 정규화되지 않은 경우 이 명령은 세션의 현재 데이터베이스에서 데이터베이스 역할을 찾습니다.
사용법 노트¶
삭제된 데이터베이스 역할은 복구할 수 없으며, 다시 만들어야 합니다.
삭제된 데이터베이스 역할이 소유한 모든 오브젝트의 소유권은 DROP DATABASE ROLE 명령을 실행하는 역할로 이전됩니다. 이러한 각 오브젝트의 소유권을 다른 데이터베이스 역할로 이전하려면 GRANT OWNERSHIP … COPY CURRENT GRANTS 를 사용하십시오.
데이터베이스 역할이 부여자 또는 피부여자로서 향후 권한을 가진 경우 MANAGE GRANTS 권한이 있는 데이터베이스 역할을 가진 사용자만 이 역할을 삭제할 수 있습니다.
부여자 또는 피부여자로서 데이터베이스 역할의 이름을 지정하는 현재 권한과 향후 권한의 부여는 전부 해당 데이터베이스 역할을 삭제할 때 제거됩니다.
GRANTS_TO_ROLES Account Usage 뷰를 쿼리하여 지정된 데이터베이스 역할을 부여자 또는 피부여자로 지정하는 권한 부여를 검색합니다.
SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('<database_name>.<db_role_name>') OR granted_by = upper('<database_name>.<db_role_name>');
다음 예에서는
d1.dr1
이 부여자 또는 피부여자인 권한 부여를 검색합니다.SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('d1.dr1') OR granted_by = upper('d1.dr1');
예¶
DROP DATABASE ROLE d1.dr1;