커스텀 역할과 보조 역할

Snowflake 관리, 거버넌스 및 협업

Emily Melhuish

Technical Curriculum Developer, Snowflake

단순 역할 구조의 문제점

서로 다른 권한을 가리키는 분석가 목록

Snowflake 관리, 거버넌스 및 협업

접근 역할 vs 기능 역할

접근 역할과 기능 역할 간 상속 관계 비교

  • 접근 역할은 특정 객체에 대한 구체적인 권한을 보유합니다
  • 기능 역할은 상위에 위치하며 접근 역할을 상속합니다
1 [Snowflake: Aligning Object Access with Business Functions](https://docs.snowflake.com/en/user-guide/security-access-control-considerations#aligning-object-access-with-business-functions)
Snowflake 관리, 거버넌스 및 협업

동작 방식

실제 동작 방식

  • 접근 역할은 구체적인 권한을 보유합니다
  • 기능 역할은 하나 이상의 접근 역할을 상속합니다
  • 사용자에게는 기능 역할이 할당됩니다
Snowflake 관리, 거버넌스 및 협업

SQL로 계층 구조 구성하기

1단계: 접근 역할을 생성하고 객체 권한을 부여합니다

CREATE ROLE credit_read;
GRANT USAGE ON DATABASE claro_db 
TO ROLE credit_read;
GRANT USAGE ON SCHEMA claro_db.core 
TO ROLE credit_read;
GRANT SELECT ON TABLE core.credit_scores
  TO ROLE credit_read;

2단계: 기능 역할을 생성하고 접근 역할을 상속합니다

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

3단계: 사용자에게 기능 역할을 할당합니다

GRANT ROLE analyst TO USER ana;
Snowflake 관리, 거버넌스 및 협업

계정 역할 vs 데이터베이스 역할

계정 역할 데이터베이스 역할
범위 모든 데이터베이스 또는 스키마에 적용 단일 데이터베이스로 범위 제한
사용자 할당 여부? 가능 불가 - 계정 역할에 부여
SQL CREATE ROLE CREATE DATABASE ROLE
사용 사례 계정 전체의 직무 기능 표현 단일 데이터베이스 내 객체 접근 묶음 관리
Snowflake 관리, 거버넌스 및 협업

보조 역할

  • 각 세션은 USE ROLE <Role Name>으로 기본 역할을 설정합니다
  • 기본적으로 보조 역할은 ALL로 설정됩니다: 할당된 모든 역할이 활성화됩니다
  • USE SECONDARY ROLES <role_name>으로 특정 역할 하위 집합을 활성화합니다

  • USE SECONDARY ROLES NONE으로 기본 역할만 유지합니다

세션에서 보조 역할 제어

USE SECONDARY ROLES ALL;
USE SECONDARY ROLES <role_name>;
USE SECONDARY ROLES NONE;
1 [Snowflake BCR-1692: Secondary Roles Default Change](https://docs.snowflake.com/en/release-notes/bcr-bundles/2024_08/bcr-1692)
Snowflake 관리, 거버넌스 및 협업

미래 부여

해당 스키마에 추가되는 새 테이블에 SELECT를 자동으로 부여합니다

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Snowflake 관리, 거버넌스 및 협업

연습해 봅시다!

Snowflake 관리, 거버넌스 및 협업

Preparing Video For Download...