GRANT ROLE
GRANT ROLE
역할(role)을 사용자 또는 다른 역할에 할당하는 명령이에요.
출처: 문서
본문
- 역할을 다른 역할에 부여하면 두 역할 사이에 "부모-자식" 관계(역할 계층 구조)가 만들어져요.
- 역할을 사용자에게 부여하면 사용자는 역할에 부여된 접근 권한을 통해 그 역할이 허용하는 모든 작업을 수행할 수 있게 돼요.
구문 (Syntax)
GRANT ROLE <name> TO { ROLE <parent_role_name> | USER <user_name> }
파라미터
- name — 부여할 역할의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요.
- ROLE parent_role_name — 역할을 지정된 역할에 부여해요.
- USER user_name — 역할을 지정된 사용자에게 부여해요.
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 역할은 최소한 다음 권한을 가져야 해요:
| Privilege | Object | Notes |
|---|---|---|
| OWNERSHIP | Role | 사용자 또는 다른 역할에 부여되는 역할. |
또는 전역 MANAGE GRANTS 권한이 있는 역할을 사용해요. 기본적으로 SECURITYADMIN 역할 또는 더 높은 역할만 이 권한을 가져요. 이 권한은 필요에 따라 추가 역할에 부여할 수 있어요.
스키마에서 객체를 운영하려면 부모 데이터베이스에 대한 권한이 하나 이상, 부모 스키마에 대한 권한이 하나 이상 필요해요.
사용 메모 (Usage notes)
- PUBLIC을 포함한 시스템 정의 역할은 역할 계층 구조가 Snowflake에 의해 정의되고 유지되므로 다른 역할에 부여할 필요가 없어요.
예시 (Examples)
GRANT ROLE analyst TO ROLE SYSADMIN;
GRANT ROLE analyst TO USER user1;