데이터 애널리스트 업무 이해하기

[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_ 시스템 정의 역할(System-Defined Roles)

도쿄뱅 2024. 10. 13. 16:57
반응형

[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_ 시스템 정의 역할(System-Defined Roles)


 

 

**Snowflake의 시스템 정의 역할(System-Defined Roles)**에 대해 설명해볼게요. 이 역할들은 Snowflake가 기본적으로 제공하는 역할로, 사용자들이 시스템 내에서 다양한 권한과 접근 제어를 보다 쉽게 관리할 수 있도록 설계되어 있어요.

1. 시스템 정의 역할(System-Defined Roles)란?

  • 시스템 정의 역할은 Snowflake에서 기본적으로 제공하는 **사전 정의된 역할(roles)**을 말해요.
  • 이 역할들은 특정한 권한책임을 가지도록 미리 설정되어 있어요.
  • 사용자에게 적절한 역할을 할당함으로써, 데이터베이스 리소스와 객체에 대한 접근 권한을 쉽게 관리할 수 있어요.
  • Snowflake의 시스템 정의 역할들은 일반적으로 관리자, 개발자, 보안 담당자 등 다양한 사용자의 작업 범위에 맞춰져 있어요.

2. 주요 시스템 정의 역할들

Snowflake에서 가장 많이 사용되는 몇 가지 시스템 정의 역할을 설명할게요:

  • ACCOUNTADMIN:
    • 계정 관리자 역할로, 가장 높은 권한을 가지고 있어요.
    • 계정 설정 및 관리, 사용자 및 역할 관리, 청구 및 리소스 사용량 관리를 포함한 모든 권한을 가지고 있어요.
    • 이 역할을 가진 사용자는 Snowflake 계정 내의 모든 리소스를 볼 수 있고, 가장 높은 수준의 관리 작업을 수행할 수 있어요.
    • 일반적으로 이 역할은 매우 강력한 권한을 가지고 있어, 제한된 사용자에게만 할당하는 것이 좋아요.
  • SECURITYADMIN:
    • 보안 관리자 역할로, 사용자 및 역할 관리에 대한 강력한 권한을 가지고 있어요.
    • 사용자 생성 및 삭제, 비밀번호 관리, 역할 할당사용자와 관련된 보안 작업을 수행할 수 있어요.
    • 접근 제어 정책역할 기반 권한 부여를 관리할 수 있으므로, 보안 관련 작업을 담당하는 사용자에게 적합해요.
    • 단, 계정 전체 설정을 변경할 수 있는 권한은 없기 때문에, 계정 전체의 모든 권한을 가진 ACCOUNTADMIN보다는 범위가 좁아요.
  • SYSADMIN:
    • 시스템 관리자 역할로, 데이터베이스와 **데이터베이스 객체(테이블, 뷰, 스키마 등)**에 대한 관리 권한을 가지고 있어요.
    • 데이터베이스 생성 및 삭제, 스키마 관리, 테이블 및 뷰 관리데이터와 관련된 작업을 수행할 수 있어요.
    • 일반적으로 개발자나 **데이터베이스 관리자(DBA)**에게 할당하여 데이터베이스 리소스 관리를 맡길 때 사용해요.
    • 하지만 사용자 생성이나 계정 설정 등은 할 수 없어서 보안 관련 관리와는 거리가 있어요.
  • PUBLIC:
    • 모든 사용자에게 기본적으로 할당되는 역할이에요.
    • Snowflake에서 새로 생성된 모든 사용자는 자동으로 PUBLIC 역할을 할당받아요.
    • 일반적으로 제한된 기본 권한만 가지고 있어요. 예를 들어, 자신이 속한 계정의 기본 정보를 조회할 수 있는 정도죠.
    • 추가적인 권한을 할당하기 전의 기본 상태로, 필요에 따라 다른 역할을 추가로 부여하여 사용자의 권한을 확장할 수 있어요.
  • USERADMIN:
    • 사용자 관리에 특화된 역할로, 사용자 생성, 삭제, 사용자 역할 할당 등의 권한을 가지고 있어요.
    • 새로운 사용자를 추가하거나 특정 역할을 사용자에게 할당할 때 사용해요.
    • 하지만 데이터베이스나 스키마에 대한 관리 권한은 없기 때문에, 사용자 관리에 초점이 맞춰져 있어요.
    • 보안 관리보다는 사용자와 관련된 기초적인 관리에 필요한 역할이라고 볼 수 있어요.

3. 시스템 정의 역할의 계층 구조

  • Snowflake에서 역할들은 계층적 구조로 권한을 상속할 수 있어요. 상위 역할이 가지고 있는 권한은 하위 역할에게 상속될 수 있죠.
  • 예를 들어, ACCOUNTADMIN 역할은 SECURITYADMINSYSADMIN의 권한을 모두 포함하고 있어요.
  • 이런 계층 구조를 통해 권한 관리가 더 쉽고, 역할별로 세부적인 권한 설정이 가능해요.

4. 사용 사례와 역할 할당

  • 관리자(Admin): ACCOUNTADMINSECURITYADMIN 역할을 할당하여 계정 전반의 설정과 보안 관리에 대한 모든 권한을 부여해요.
  • DBA(데이터베이스 관리자): SYSADMIN 역할을 할당하여 데이터베이스, 스키마, 테이블 등을 생성하고 관리할 수 있도록 해요.
  • 보안 담당자: SECURITYADMIN 역할을 통해 사용자 관리와 보안 정책 설정을 담당하게 할 수 있어요.
  • 일반 사용자: PUBLIC 역할만을 기본적으로 가지지만, 특정 데이터베이스나 스키마에 대한 접근이 필요할 때에는 추가적인 역할을 할당하여 필요한 권한만 부여할 수 있어요.

5. 비유로 이해하기

  • 시스템 정의 역할들은 마치 회사 조직의 직책처럼 생각할 수 있어요:
    • ACCOUNTADMINCEO와 같아요. 회사의 모든 부서와 직원에게 접근할 수 있고, 모든 결정을 내릴 수 있어요.
    • SECURITYADMIN보안 부서의 팀장으로, 직원의 접근 권한을 관리하고 회사 보안을 담당해요.
    • SYSADMINIT 관리자로, 회사의 서버와 데이터베이스를 관리하고 유지 보수해요.
    • USERADMINHR 관리자로, 직원 계정을 생성하고 관리하는 역할이에요.
    • PUBLIC은 회사의 모든 직원에게 기본적으로 제공되는 기본 권한과 비슷해요. 추가 권한이 주어지기 전의 상태죠.

6. 정리

Snowflake의 시스템 정의 역할데이터베이스 리소스사용자 관리를 보다 쉽게 할 수 있도록 미리 설정된 역할들이에요. 각각의 역할은 특정한 권한을 가지며, 사용자가 시스템을 사용할 때 필요한 역할을 부여받게 돼요. 이런 역할들을 이해하고 적절히 사용하면 보안 강화, 효율적인 데이터 관리리소스 제어에 큰 도움이 돼요.


[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_ 시스템 정의 역할(System-Defined Roles)

반응형