GRANT DATABASE ROLE

GRANT DATABASE ROLE

데이터베이스 역할(database role)을 계정 역할, 다른 데이터베이스 역할 또는 사용자에게 할당하는 명령이에요. 데이터베이스 역할에 대해 OWNERSHIP 권한이 있는 사용자는 그 데이터베이스 역할을 같은 데이터베이스의 계정 역할, 다른 데이터베이스 역할 또는 사용자에게 부여할 수 있어요. 데이터베이스 역할을 다른 역할에 부여하면 두 역할 사이에 "부모-자식" 관계(역할 계층 구조)가 만들어져요.

출처: 문서

본문

구문 (Syntax)

GRANT DATABASE ROLE <name> TO { DATABASE ROLE <parent_role_name> | ROLE <parent_role_name> | USER <user_name> }

GRANT DATABASE ROLE <name> TO APPLICATION <app_name>

파라미터

  • name — 데이터베이스 역할의 식별자(이름)를 지정해요. 데이터베이스 역할이 생성되는 데이터베이스 내에서 고유해야 해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 식별자가 db_name.database_role_name 형식으로 정규화되지 않았다면, 명령은 세션의 현재 데이터베이스에서 데이터베이스 역할을 찾아요.
  • ROLE parent_role_name — 데이터베이스 역할을 지정된 계정 역할에 부여해요.
  • DATABASE ROLE parent_role_name — 데이터베이스 역할을 지정된 데이터베이스 역할에 부여해요. 부모 역할이 데이터베이스 역할이고 식별자가 db_name.database_role_name 형식으로 정규화되지 않았다면, 명령은 세션의 현재 데이터베이스에서 데이터베이스 역할을 찾아요.
  • APPLICATION app_name — 데이터베이스 역할을 지정된 Snowflake Native App에 부여해요.
  • USER user_name — 데이터베이스 역할을 지정된 사용자에게 부여해요.

접근 제어 요구사항 (Access control requirements)

이 작업을 실행하는 역할은 최소한 다음 권한을 가져야 해요:

Privilege 또는 role Object Notes
OWNERSHIP Database role OWNERSHIP은 객체 생성 역할에 자동 부여되는 특수 권한이지만, 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수도 있어요.

예시 (Examples)

analyst 데이터베이스 역할을 SYSADMIN 역할에 부여해요:

GRANT DATABASE ROLE analyst TO ROLE SYSADMIN;

dr1 데이터베이스 역할을 dr2 데이터베이스 역할에 부여해요:

GRANT DATABASE ROLE dr1 TO DATABASE ROLE dr2;

db1 데이터베이스 역할을 hello_snowflake_app이라는 Snowflake Native App에 부여해요:

GRANT DATABASE ROLE db1 TO APPLICATION hello_snowflake_app;

dr3 데이터베이스 역할을 사용자 user1에게 부여해요:

GRANT DATABASE ROLE dr3 TO USER user1;

더 알아보기 (Learn more)