A role is an entity to which privileges on securable objects can be granted or revoked.
-- 데이터베이스에 대한 USAGE 권한을 Role에 부여
GRANT USAGE ON DATABASE TEST_DB TO ROLE TEST_ROLE;
-- 테이블에 대한 SELECT 권한을 Role에 부여
GRANT SELECT ON TABLE TEST_TABLE TO ROLE TEST_ROLE;
-- 스키마에 대한 USAGE 권한을 Role에 부여
GRANT USAGE ON SCHEMA TEST_SCHEMA TO ROLE TEST_ROLE;
-- Role을 User에게 부여
GRANT ROLE TEST_ROLE TO USER ADMIN;
| 특징 | 설명 |
|---|---|
| 다중 Role 보유 | 하나의 User가 여러 Role을 가질 수 있음 |
| Role 전환 | Snowflake 세션 내에서 Role 간 전환 가능 |
| Role 계층 구조 | Role을 다른 Role에 부여하여 계층(Hierarchy) 생성 가능 |
| 권한 상속 | 하위 Role의 권한은 상위(Parent) Role에 상속됨 |
-- Role 3의 권한을 Role 2에 부여
GRANT ROLE ROLE_3 TO ROLE ROLE_2;
-- Role 2의 권한을 Role 1에 부여
GRANT ROLE ROLE_2 TO ROLE ROLE_1;
Role 3 → Role 2 → Role 1
↓ ↓ ↓
Privilege A Privilege A (inherited) Privilege A (inherited)
Privilege B Privilege B (inherited)
Privilege B (own)
💡 권한 상속 원칙: 하위 Role의 모든 Privilege는 상위 Parent Role에 자동으로 상속됨
Snowflake 계정 생성 시 자동으로 제공되는 역할로, 삭제 불가하며 Snowflake가 부여한 권한은 취소 불가
ORGADMIN
|
ACCOUNTADMIN
|
┌─┴─────────┐
SECURITYADMIN SYSADMIN
|
USERADMIN
PUBLIC (모든 User/Role에 자동 부여)
⚠️추가 정보: ORGADMIN은 시스템 역할 계층(ACCOUNTADMIN 아래)에 포함되지 않는 별도의 독립 역할임. 향후 릴리스에서 GLOBALORGADMIN으로 대체 예정.
⚠️ 권고사항: 제한된 소수의 사용자에게만 부여할 것
⚠️ 주의사항: MANAGE GRANTS 권한은 권한 부여/취소 능력만 제공. 객체 생성 권한은 별도 부여 필요.
| 항목 | 내용 |
|---|---|
| 목적 | 세밀한(Fine-grained) 보안 권한을 정의한 역할 생성 |
| 생성 가능 역할 | SECURITYADMIN, USERADMIN 또는 CREATE ROLE 권한이 부여된 모든 역할 |
| 권장 구조 | Custom Role 계층의 최상위 Custom Role을 SYSADMIN에 할당 |
Custom Role을 SYSADMIN에 할당하지 않으면, 시스템 관리자가 해당 Custom Role이 소유한 객체를 관리할 수 없음
SYSADMIN
↑
Custom Role (최상위) ← 반드시 SYSADMIN에 연결 권장
↑
Custom Role (중간)
↑
Custom Role (하위)
| 구분 | 핵심 내용 |
|---|---|
| Role 정의 | Securable Object에 권한을 부여/취소할 수 있는 엔티티 |
| Role → User | GRANT ROLE ... TO USER ... |
| Role → Role | GRANT ROLE ... TO ROLE ... (계층 생성) |
| 권한 상속 방향 | 하위 → 상위 (Child → Parent) |
| 가장 강력한 Role | ACCOUNTADMIN |
| 사용자 생성 전담 | USERADMIN |
| 객체 생성 전담 | SYSADMIN |
| 권한 전역 관리 | SECURITYADMIN (MANAGE GRANTS 권한) |
| 자동 부여 Role | PUBLIC (모든 User/Role에 자동 할당) |
| Custom Role 권장 | 최상위를 SYSADMIN에 연결 |