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

[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Privileges(권한)

도쿄뱅 2024. 10. 13. 18:48
반응형

[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Privileges(권한)


 

 

**Privileges(권한)**은 Snowflake에서 사용자나 역할이 특정 데이터베이스 객체에 대해 수행할 수 있는 작업을 제어하는 개념이에요. 권한을 사용해 데이터베이스 객체에 대한 접근을 제한하거나 허용할 수 있어요. 이는 데이터의 보안무결성을 유지하면서 사용자 간의 작업을 관리하는 데 중요한 역할을 해요.

1. Privileges(권한)이란?

  • 권한은 특정 역할(role)이나 사용자에게 부여되어, 그 역할이 **데이터베이스 객체(테이블, 스키마, 데이터베이스 등)**에서 특정 작업을 수행할 수 있도록 해줘요.
  • 예를 들어, 테이블에 대해 읽기(SELECT) 권한이 있으면 데이터를 조회할 수 있고, 쓰기(INSERT, UPDATE) 권한이 있으면 데이터를 수정하거나 추가할 수 있어요.
  • 권한 부여회수를 통해 사용자나 역할이 어떤 작업을 할 수 있는지를 세밀하게 조정할 수 있어요.

2. 주요 권한의 종류

Snowflake에서 사용할 수 있는 다양한 권한들이 있어요. 아래는 그중 주요 권한들의 설명이에요:

  • USAGE:
    • 특정 객체에 대해 사용 권한을 부여하는 기본 권한이에요.
    • 예를 들어, 데이터베이스나 스키마에 대해 USAGE 권한을 가지고 있어야 해당 데이터베이스나 스키마 내의 객체를 사용할 수 있어요.
    • 이 권한은 데이터 조회나 수정 권한을 부여하지는 않지만, 접근할 수 있는 권한을 부여하는 역할을 해요.
  • SELECT:
    • 테이블이나 뷰에 대해 데이터를 읽을 수 있는 권한이에요.
    • 예를 들어, SELECT 권한이 있어야 테이블에서 데이터를 조회할 수 있어요.
    • 이 권한은 데이터베이스 안의 데이터를 검색하거나 읽는 작업을 허용해요.
  • INSERT:
    • 테이블에 새로운 데이터를 추가할 수 있는 권한이에요.
    • 예를 들어, 테이블에 새로운 행(row)을 추가하려면 이 권한이 필요해요.
  • UPDATE:
    • 테이블의 기존 데이터를 수정할 수 있는 권한이에요.
    • 이미 존재하는 행의 데이터를 변경하고 싶을 때 필요한 권한이에요.
  • DELETE:
    • 테이블에서 데이터를 삭제할 수 있는 권한이에요.
    • 테이블에 있는 특정 행을 제거하려면 이 권한이 필요해요.
  • CREATE:
    • 데이터베이스나 스키마 내에서 새로운 객체(테이블, 뷰, 스키마 등)를 생성할 수 있는 권한이에요.
    • 예를 들어, 스키마에 CREATE TABLE 권한이 있으면 그 스키마 안에서 새로운 테이블을 만들 수 있어요.
  • MODIFY:
    • 테이블과 같은 객체에 대해 ALTER 작업을 수행할 수 있는 권한이에요.
    • 예를 들어, 테이블에 새로운 열(column)을 추가하거나 기존 열을 수정할 때 필요한 권한이에요.
  • OWNERSHIP:
    • 모든 권한을 부여받는 역할이에요. 소유자는 객체에 대해 모든 권한을 가지고 있으며, 그 객체의 권한을 다른 사용자나 역할에 부여할 수 있어요.
    • 특정 객체의 소유자는 해당 객체를 수정하거나 삭제할 수 있고, 다른 권한을 부여하거나 회수할 수 있어요.

3. 권한의 부여와 회수: GRANT와 REVOKE

권한을 부여하거나 회수하는 것은 SQL 명령어인 GRANTREVOKE를 통해 이루어져요.

  • GRANT:
    • 특정 역할이나 사용자에게 권한을 부여하는 명령어예요.
    • 예를 들어, 특정 테이블에 대해 SELECT 권한을 역할에게 부여하려면 다음과 같은 명령어를 사용할 수 있어요:
    • sql
      コードをコピーする
      GRANT SELECT ON TABLE my_table TO ROLE my_role;
    • 이 명령어는 my_role이라는 역할에 my_table 테이블을 읽을 수 있는 권한을 부여해요.
  • REVOKE:
    • 특정 역할이나 사용자로부터 권한을 회수하는 명령어예요.
    • 위의 SELECT 권한을 회수하고 싶다면 다음과 같은 명령어를 사용할 수 있어요:
    • sql
      コードをコピーする
      REVOKE SELECT ON TABLE my_table FROM ROLE my_role;
    • 이 명령어는 my_role이라는 역할에서 my_table에 대한 읽기 권한을 제거해요.

4. 권한의 상속과 역할 기반 접근 제어

  • 역할 기반 접근 제어(Role-Based Access Control, RBAC):
    • Snowflake는 RBAC 모델을 사용해서 역할에 권한을 부여하고, 역할을 사용자에게 할당하는 방식을 사용해요.
    • 이렇게 하면 각 역할에 필요한 권한만 할당할 수 있어서, 사용자 간의 세밀한 권한 관리가 가능해요.
    • 예를 들어, 개발자 역할에게는 SELECT, INSERT, UPDATE 권한을, 데이터 분석가 역할에게는 SELECT 권한만 부여하는 식으로 관리할 수 있어요.
  • 권한 상속:
    • 역할 간의 상위/하위 관계가 설정되어 있을 경우, 상위 역할에 있는 권한이 하위 역할로 상속될 수 있어요.
    • 예를 들어, SECURITYADMIN 역할이 ANALYST 역할의 상위에 있다면, SECURITYADMIN은 ANALYST의 권한도 사용할 수 있게 돼요.

5. 비유로 이해하기

  • Privileges는 마치 회사 사무실의 출입 권한 같아요:
    • USAGE 권한은 사무실 건물에 입장할 수 있는 출입증을 주는 것과 비슷해요. 출입은 가능하지만, 사무실 내부의 각 방에는 따로 접근 권한이 필요해요.
    • SELECT 권한은 서류 보관실을 열 수 있는 열쇠를 주는 것과 같아요. 보관된 자료를 읽고 볼 수 있죠.
    • INSERT서류를 보관실에 넣을 수 있는 열쇠와 같고, DELETE는 그 서류를 버릴 수 있는 권한을 의미해요.
    • OWNERSHIP은 그 방의 관리자가 되는 것과 같아요. 어떤 사람이 들어오고 나갈 수 있는지 결정할 수 있죠.

6. 정리

**Privileges(권한)**은 Snowflake에서 데이터베이스와 같은 객체에 대해 역할이나 사용자가 수행할 수 있는 작업을 정의해요. 이를 통해 데이터에 대한 접근 제어보안 관리가 가능해져요. Snowflake의 권한을 GRANTREVOKE 명령어를 사용해 부여하고 회수할 수 있으며, **역할 기반 접근 제어(RBAC)**를 통해 조직 내 다양한 역할의 권한을 관리할 수 있어요. 이로써 효율적이고 안전한 데이터 관리가 가능해진답니다!

 


[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Privileges(권한)

반응형