Snowflake는 고객의 데이터를 안전을 보장하는 다양한 기능을 제공하고 있습니다.


아래 그림과 같은 RBAC 구성을 작성합니다

grant select on schema1.table1 to role bi ; grant select on schema1.table2 to role bi ; grant select on schema2.table3 to role bi ; grant insert on schema1.table2 to role ds ; grant insert on schema2.table3 to role de ;
grant role de to role ds ; grant role bi to user user1 ; grant role bi to user user2 ; grant role ds to user user2 ; grant role de to user user2 ; grant role de to user user3 ;
위와 같이 역할별, 사용자별 권한이 부여되어 있을때 각 사용자가 역할별로 수행할 수 있는 오브젝트에 대한 권한은 다음과 같습니다

ORGADMIN : Account를 생성할 수 있는 권한을 가진 역할
ACCOUNTADMIN : SECURITYADMIN과 SYSADMIN을 포함(상속)하는 시스템의 최상위 역할
SECURITYADMIN : 모든 오브젝트 권한 부여를 전역적으로 관리하고 사용자 및 역할을 생성, 모니터링 및 관리할 수 있는 역할, USERADMIN의 역할을 포함(상속됨)
USERADMIN : 사용자 및 역할 관리만을 수행하는 역할
SYSADMIN : 가상 웨어하우스 및 데이터베이스(또는 기타 오브젝트)의 생성 권한이 있는 역할
PUBLIC : 모든 사용자와 계정의 모든 역할에 자동으로 부여되는 역할

주의사항
ACCOUNTADMIN 가이드
사용자의 기본 Role 설정
// 사용자 생성 또는 변경 CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole ; ALTER USER user1 SET DEFAULT_ROLE = myrole ;
- 로그인 시 사용자 세션에 대해 기본적으로 활성화되는 기본 역할을 지정합니다
- 사용자 기본 역할이 지정되어 있다 하더라도 해당 역할이 부여되는 것은 아니므로 GRANT ROLE 명령으로 사용자가 해당 역할을 사용할 수 있도록 권한 부여해야 합니다
Role 권한 부여
GRANT ROLE analyst TO USER user1 ;
- 사용자 계정은 여러 역할 할당 가능
GRANT ROLE engineer TO ROLE scientist ;
- 역할(Role)은 다른 역할에 권한을 부여 가능.
- 위의 예시에서 scientist 역할은 engineer가 가진 권한을 모두 포함
Role 전환 및 사용
USE ROLE scientist ;
Default Role 확인
SHOW USERS ;
- 사용자 계정에 대한 모든 설정값과 default role을 포함한 모든 default 설정값을 표시
- 특정 사용자에 대해 확인하려면 like ‘사용자계정이름’ 을 추가
Role에 대한 통계
SHOW ROLES ;
- 할당된 사용자 수, 할당된 Role 수 등 전반적인 통계를 확인
- 특정 role에 대해 확인하려면 like ‘역할이름’을 추가
할당 받은 권한
SHOW GRANTS TO USER user1 ;
- 특정 사용자에게 할당되어 있는 역할(Role)의 리스트를 출력
- SHOW GRANTS만 실행하면 현재 사용자에게 할당된 역할이 출력
SHOW GRANTS TO ROLE scientist ;
- 특정 역할에 할당되어 있는 권한을 출력 (예, 웨어하우스, 데이터베이스, 스키마, 테이블, 롤 등)