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은 관리 권한이 있고, SYSADMIN
과 SECURITYADMIN
의 상위라고 생각하면 됩니다.
따라서 ACCOUNTADMIN
는 SYSADMIN
에서 만든 데이터베이스를 가져와 SECURITYADMIN
에게도 제공할 수 있습니다.
📓 Default Role Assignment
평가판 계정 사용자로 할당된 DEFAULT ROLE
은 ACCOUNTADMIN
입니다. 기본 역할을 다른 것으로 변경할 수 있지만, 워크샵에서는 변경하지 않는 것이 좋습니다.
📓 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는 자동으로 두 개의 스키마를 생성합니다.
INFORMATION_SCHEMA
- view 소유
- 삭제하거나 이름을 바꾸거나 이동할 수 없음
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?
ACCOUNTADMIN
으로 ROLE 변경- 사이드 바의
ADMIN
클릭 WAREHOUSES
클릭WAREHOUSES
리스트 확인PUBLIC
ROLE로 변경WAREHOUSES
리스트 확인SYSADMIN
ROLE로 변경
🏁 Lesson 1 & 2 Wrap Up
💯 Lesson 1: Identity and Access 완료!