DROP DATABASE ROLE

DROP DATABASE ROLE

시스템에서 지정한 데이터베이스 역할(Database Role)을 제거하는 명령어입니다.

출처: 문서

본문

DROP DATABASE ROLE은 시스템에서 지정한 데이터베이스 역할을 제거합니다. 관련 명령어로 CREATE DATABASE ROLE, ALTER DATABASE ROLE, SHOW DATABASE ROLES가 있어요.

구문 (Syntax)

DROP DATABASE ROLE [ IF EXISTS ] <name>

파라미터 (Parameters)

  • name — 데이터베이스 역할의 식별자(이름)를 지정하며, 역할이 생성된 데이터베이스 안에서 고유해야 합니다. 식별자는 영문자로 시작해야 하며, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없습니다(예: "My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분해요. 식별자가 정규화되지 않았다면(db_name.database_role_name 형태), 명령어는 세션의 현재 데이터베이스에서 데이터베이스 역할을 찾습니다.

사용 참고 사항 (Usage notes)

  • 삭제된 데이터베이스 역할은 복구할 수 없습니다. 다시 생성해야 합니다.
  • 삭제된 데이터베이스 역할이 소유한 모든 객체의 소유권은 DROP DATABASE ROLE 명령어를 실행한 역할로 이전됩니다. 각 객체의 소유권을 다른 데이터베이스 역할로 이전하려면 GRANT OWNERSHIP … COPY CURRENT GRANTS를 사용하세요.
  • 데이터베이스 역할이 grantor 또는 grantee로서 미래 권한(future privilege)을 가지고 있다면, 그 데이터베이스 역할은 MANAGE GRANTS 권한이 있는 역할을 가진 사용자만 삭제할 수 있습니다.
  • IF EXISTS 절을 지정하고 대상 객체가 존재하지 않으면, 명령어는 오류를 반환하지 않고 성공적으로 완료됩니다.
  • 데이터베이스 역할이 삭제되면 그 역할을 grantor 또는 grantee로 지명하는 모든 현재 및 미래의 부여(grant)가 제거됩니다.
  • 지정한 데이터베이스 역할을 grantor 또는 grantee로 지명하는 권한 부여를 검색하려면 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이 grantor 또는 grantee인 부여를 검색합니다.

SELECT *
  FROM snowflake.account_usage.grants_to_roles
  WHERE grantee_name = upper('d1.dr1') OR granted_by = upper('d1.dr1');

예제 (Examples)

DROP DATABASE ROLE d1.dr1;

더 알아보기 (Learn more)