사용자 & 보안 DDL
사용자 & 보안 DDL (User & security DDL)
Snowflake에서 사용자(user)와 보안 객체를 만들고 관리하기 위한 SQL 명령들을 정리한 문서예요. 사용자, 역할, 데이터베이스 역할, 객체 태깅, 접근 제어, 네트워크 정책, 시크릿, 비밀번호 정책, 세션 정책, 서드파티 통합 관리를 위한 각 DDL 명령 링크를 확인할 수 있어요.
본문
Snowflake는 사용자와 보안을 관리하기 위한 완전한 SQL 명령 세트를 제공해요. 이 명령들은 관리 대상 객체에 대한 OWNERSHIP 권한이 부여된 역할을 가진 사용자만 실행할 수 있어요. 이는 보통 ACCOUNTADMIN과 SECURITYADMIN 역할로 제한돼요.
그러나 개별 사용자는 스스로 다음 작업을 수행할 수 있어요.
- 비밀번호 변경 (웹 인터페이스를 통해서만).
- 본인 사용자 정보 보기 (DESCRIBE USER 통해).
- 기본 역할, 가상 웨어하우스 또는 네임스페이스 변경 (ALTER USER 통해).
- 세션 파라미터 변경 (ALTER SESSION 통해).
사용자 관리 (User management)
Snowflake에 접근 권한이 있는 각 사용자는 사용자 객체로 표현돼요. 사용자 객체는 로그인 이름, 비밀번호, 기본값(역할, 가상 웨어하우스, 네임스페이스)을 포함한 사용자의 모든 정보를 저장해요. 시스템에서 사용자를 관리하려면 다음 DDL 명령을 사용해요.
역할 관리 (Role management)
Snowflake는 역할을 사용해 시스템의 객체에 대한 접근을 제어해요.
- 역할에는 시스템의 객체(데이터베이스, 테이블 등)에 대한 접근 권한이 부여돼요.
- 역할은 사용자에게 부여되어, 역할이 권한을 가진 객체를 만들고, 수정하고, 사용할 수 있게 해요.
- 역할은 다른 역할에게 부여될 수 있어 계층적 접근 권한을 정의할 수 있어요.
시스템에서 역할을 관리하려면 다음 DDL 명령을 사용해요.
시스템에서 데이터베이스 역할을 관리하려면 다음 DDL 명령을 사용해요.
사용자 세션 내에서 기본 역할이나 보조 역할을 활성화하려면 다음 명령을 사용해요.
객체 태깅 관리 (Object tagging management)
Snowflake는 태그를 만들고 관리하기 위한 다음 DDL을 지원해요.
- CREATE TAG
- ALTER TAG
- ALTER (Snowflake 객체에 태그를 설정하려면)
- SHOW TAGS
- DROP TAG
- UNDROP TAG
Snowflake는 태그 객체에 대한 describe 연산을 지원하지 않는다는 점에 유의하세요.
접근 제어 관리 (Access control management)
다음 명령을 사용해 역할에 객체 권한을 부여(및 취소)하고 역할을 사용자와 다른 역할에 부여해 객체에 대한 접근 제어를 관리해요.
- GRANT
… TO ROLE - REVOKE
… FROM ROLE - GRANT
… TO SHARE - REVOKE
… FROM SHARE - GRANT DATABASE ROLE … TO SHARE
- REVOKE DATABASE ROLE … FROM SHARE
- GRANT OWNERSHIP
- GRANT ROLE
- GRANT DATABASE ROLE
- REVOKE ROLE
- REVOKE DATABASE ROLE
- SHOW GRANTS
네트워크 정책 관리 (Network policy management)
네트워크 정책(Network policy)은 사용자 IP 주소를 기반으로 계정에 대한 접근을 제한하는 것을 지원해요. 네트워크 정책을 만들거나, 변경하거나, 제거하려면 다음 명령을 사용해요.
- ALTER NETWORK POLICY
- CREATE NETWORK POLICY
- DESCRIBE NETWORK POLICY
- DROP NETWORK POLICY
- SHOW NETWORK POLICIES
시크릿 관리 (Secret management)
Snowflake는 시크릿(secret)을 관리하기 위한 다음 DDL 명령과 연산을 지원해요.
비밀번호 정책 관리 (Password policy management)
Snowflake는 비밀번호 정책 객체를 관리하기 위한 다음 DDL 명령을 제공해요.
- CREATE PASSWORD POLICY
- ALTER PASSWORD POLICY
- DROP PASSWORD POLICY
- SHOW PASSWORD POLICIES
- DESCRIBE PASSWORD POLICY
세션 정책 관리 (Session policy management)
Snowflake는 세션 정책 객체를 관리하기 위한 다음 DDL 명령을 제공해요.
- CREATE SESSION POLICY
- ALTER SESSION POLICY
- DROP SESSION POLICY
- SHOW SESSION POLICIES
- DESCRIBE SESSION POLICY
서드파티 통합 (Third-party integrations)
통합(integration)은 Snowflake와 서드파티 서비스 사이의 인터페이스를 제공하는 Snowflake 객체예요. 통합을 만들거나, 변경하거나, 제거하려면 다음 명령을 사용해요.
API 통합 (API integrations)
- ALTER API INTEGRATION
- CREATE API INTEGRATION
- DESCRIBE INTEGRATION
- DROP INTEGRATION
- SHOW INTEGRATIONS
알림 통합 (Notification integrations)
- ALTER NOTIFICATION INTEGRATION
- CREATE NOTIFICATION INTEGRATION
- DESCRIBE NOTIFICATION INTEGRATION
- DROP INTEGRATION
- SHOW NOTIFICATION INTEGRATIONS
보안 통합 (Security integrations)
- ALTER SECURITY INTEGRATION
- CREATE SECURITY INTEGRATION
- DESCRIBE INTEGRATION
- DROP INTEGRATION
- SHOW INTEGRATIONS
- SHOW DELEGATED AUTHORIZATIONS
스토리지 통합 (Storage integrations)
- ALTER STORAGE INTEGRATION
- CREATE STORAGE INTEGRATION
- DESCRIBE INTEGRATION
- DROP INTEGRATION
- SHOW INTEGRATIONS