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;