imok
article thumbnail
728x90

Snowflake❄️의 Data Warehousing Workshop을 진행하면서 작업한 내용을 정리하고자 합니다.
Badge 1: 데이터 웨어하우징 워크샵 - KR

 

이번 내용은 Lesson 1: Identity and Access 과정을 진행하면서 작성한 내용입니다.


 

📓 Snowflake's Predefined Rolescurrent section

🥋 Learning About Snowflake System Roles

일부 역할들은 다른 역할들과 연결되어 있고, ACCOUNTADMIN 하위에 SECURITYADMIN, SYSADMIN, USERADMIN 이 있습니다. 이런 식으로 부모의 DNA를 자식에게 할당하는 방식으로 ROLE이 설계되어 있습니다.

 

 

📓 BOGO Roles for New Users!

snowflake 평가판 계정 사용자는 미리 ACCOUNTADMIN ROLE이 부여되어 있습니다.

자동으로 역햘을 상속받는 snowflake의 ROLE은 하나 사면 하나 더 주는 1+1 Buy One Get One Free promotion (BOGO!) 같습니다.

SYSADMIN 역할을 ACCOUNTADMIN에게 무료로 주는 것과 같습니다. 이 때문에 상위 역햘이 하위 역할인 척 할 수 있습니다.

 

📓 Discretionary Access Control (DAC)

RBAC(Role-Based Access Control) + DAC(Discretionary Access Control)

 

Snowflake의 RBAC와 DAC의 결합으로, 특정 ROLE로 데이터베이스를 생성하면 데이터베이스를 소유하는 개념이기 때문에 이를 삭제, 변경할 수 있습니다.

 

 

📓 Higher Roles Have Custodial Oversight

자녀의 법적 소유물이 부모에게 "상속"되는 것처럼
ACCOUNTADMIN ROLE은 관리 권한이 있고, SYSADMINSECURITYADMIN의 상위라고 생각하면 됩니다.

따라서 ACCOUNTADMINSYSADMIN에서 만든 데이터베이스를 가져와 SECURITYADMIN에게도 제공할 수 있습니다.

 

 

📓 Default Role Assignment

평가판 계정 사용자로 할당된 DEFAULT ROLEACCOUNTADMIN 입니다. 기본 역할을 다른 것으로 변경할 수 있지만, 워크샵에서는 변경하지 않는 것이 좋습니다.

 

 

📓 Role Hierarchy Rules Review

1. 사용자는 자동으로 (BOGO!) Hierarchy 구조의 하위 역할을 부여 받습니다.
2. USER에게 높은 ROLE이 있으면, 하위 ROLE을 부여하지 않고도 트리로 연결된 하위 ROLE을 가장할 수 있습니다.
3. 상위 ROLE은 하위 ROLE이 소유한 모든 개체를 관리 감독합니다.
4. 각 USER는 할단된 DEFAULT ROLE이 있습니다. 이는 로그인할 때마다 설정 됩니다.


 

🥋 Create a Database

🥋 Create a New Database

 

DEMO_DB 생성

 

 

🥋 Switch Your System Role to SYSADMIN

 

 

 

SYSADMIN 으로 계정을 바꿔서 DEMO_DB는 보이지 않습니다.

 


 

🥋 Explore Your New Database

🥋 Switch Your System Role Back to ACCOUNTADMIN

ROLE을 다시 ACCOUNTADMIN로 전환 합니다.

 

 

🥋 Explore the Database You Created

 

데이터베이스는 테이블을 그룹화 하는 데 사용하고, 데이터베이스를 생성할 때마다 snowflake는 자동으로 두 개의 스키마를 생성합니다.

  1. INFORMATION_SCHEMA
    • view 소유
    • 삭제하거나 이름을 바꾸거나 이동할 수 없음
  2. PUBLIC :
    • 빈 상태로 생성됨
    • 시간이 지남에 따라 table, view, 기타 항목으로 채울 수 있음
    • 언제든 삭제하거나 이름을 바꾸거나 이동할 수 있음


 

🥋 Transfer Ownership of Your New Database

🥋 Transfer Ownership of Your Database to the SYSADMIN Role

SYSADMIN ROLE에 Ownership 전달

 

 

 

🥋 Switch Your System Role Back to SYSADMIN

SYSADMIN ROLE로 변경

 


 

🎯 Ownership Challenge Lab!

🎯 Give SYSADMIN Access to the PUBLIC Schema

 

 

SYSADMIN으로 변경하니, PUBLIC 스키마가 보이지 않는 것 처럼 보인다. 이를 SYSADMIN ROLE이 사용할 수 있도록 스키마를 업데이트 해보자!

⚠️ 힌트: 변경하려면 ACCOUNTADMIN으로 다시 전환해야 합니다.

 

🎉 변경 성공 !

 


 

🎯 Role, Creation, & Ownership Challenge Lab!

🎯 Create a New Database Called UTIL_DB

새 데이터베이스를 만들고 이름을 UTIL_DB로 지정합니다. 이 데이터베이스와 PUBLIC 스키마는 SYSADMIN이 소유해야 합니다.

 

🎉 성공!

 


 

📓 Roles and Database Visibility


 

📓 Roles and Warehouse Visibility

📓 How Does Changing Your Role Affect What Warehouses You Can See?

  1. ACCOUNTADMIN으로 ROLE 변경
  2. 사이드 바의ADMIN 클릭
  3. WAREHOUSES 클릭
  4. WAREHOUSES 리스트 확인
  5. PUBLIC ROLE로 변경
  6. WAREHOUSES 리스트 확인
  7. SYSADMIN ROLE로 변경


 

🏁 Lesson 1 & 2 Wrap Up

 

💯 Lesson 1: Identity and Access 완료!

 

 

728x90
profile

imok

@imok2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!