리더 계정 관리하기

리더 계정 관리하기

리더 계정(reader account, 이전 명칭 "읽기 전용 계정")은 프로바이더가 아직 Snowflake 고객이 아닌 소비자와 데이터를 공유할 수 있게 해 주며, 소비자가 Snowflake 고객이 될 필요가 없어요.

출처: Snowflake User Guide - Manage reader accounts

본문

참고: 이 주제의 모든 작업은 ACCOUNTADMIN 역할 또는 CREATE ACCOUNT 전역 권한이 부여된 역할을 사용해 수행해야 해요.

개요

리더 계정은 데이터 소비자가 계정 프로바이더가 공유한 데이터에 접근하고 쿼리할 수 있게 해주며, 소비자는 설정·사용 비용이 들지 않고 Snowflake와 라이선스 계약을 체결할 필요도 없어요. 리더 계정은 프로바이더 계정이 만들고 소유하며 관리해요. 즉 리더 계정의 사용자가 발생시킨 크레딧 비용은 프로바이더 계정이 모두 부담해요. 표준 소비자 계정과 비슷하게 프로바이더 계정은 셰어를 사용해 데이터베이스를 리더 계정과 공유하지만, 리더 계정은 자신을 만든 프로바이더 계정의 데이터만 소비할 수 있어요.

참고: 리더 계정의 웨어하우스는 매달 무제한 크레딧을 소비할 수 있으며, 이 비용은 프로바이더 계정에 부과돼요. 사용량을 제한하려면 웨어하우스에 리소스 모니터(resource monitor)를 설정해요.

리더 계정에서 제한/허용되는 것

리더 계정은 주로 계정 프로바이더가 공유한 데이터를 쿼리하기 위한 것이에요. 예를 들어 구체화된 뷰(materialized view)를 만들어 데이터로 작업할 수 있어요.

리더 계정에서는 다음 작업을 수행할 수 없어요.

  • 리더 계정의 객체에 데이터 메트릭 함수 설정
  • 새 데이터 업로드
  • 기존 데이터 수정
  • 스토리지 통합(storage integration)을 사용한 데이터 언로드 — 단, 연결 자격 증명으로 COPY INTO <location> 명령을 사용해 클라우드 스토리지 위치로 데이터를 언로드할 수는 있어요.

또한 리더 계정에서는 다음 명령을 실행할 수 없어요.

  • INSERT, UPDATE, DELETE, MERGE
  • CREATE IMAGE REPOSITORY
  • COPY INTO <table>
  • CREATE MASKING POLICY
  • CREATE MODEL
  • CREATE PIPE
  • CREATE ROW ACCESS POLICY
  • CREATE SERVICE
  • CREATE SHARE
  • CREATE STAGE
  • CREATE STREAMLIT
  • SHOW PROCEDURES

그 외의 모든 연산은 허용돼요.

리더 계정에 대한 지원은 누가 제공하나요?

리더 계정은 Snowflake와 라이선스 계약이 없으므로 계정의 일반 사용자에게는 지원 서비스가 제공되지 않아요. 대신 프로바이더로서 계정 안 사용자의 질문과 요청을 받고 적절히 응답해요. 직접 답변하거나 해결할 수 없다면 정상 채널(지원 계약에 명시된 대로)을 통해 Snowflake 지원 티켓을 열 수 있어요. Snowflake 지원의 응답을 받으면 그 정보를 리더 계정의 적절한 사용자에게 전달해요.

웹 인터페이스로 리더 계정 만들고 관리하기

ACCOUNTADMIN 역할(또는 CREATE ACCOUNT 권한이 부여된 역할)이 있다면 Snowsight로 리더 계정 생성·관리 대부분의 작업을 수행할 수 있어요.

Snowsight에서:

  1. Snowsight에 로그인해요.
  2. 탐색 메뉴에서 Admin » Accounts를 선택해요.
  3. Accounts 탭을 선택해요.
  4. Reader accounts 하위 탭을 선택해요.

이 페이지에서 다음을 할 수 있어요.

  • + New를 선택해 리더 계정을 만들어요.
  • 기존 리더 계정을 검토해요.
  • … » Drop을 선택해 리더 계정을 삭제해요.

참고: 기본적으로 프로바이더가 만들 수 있는 리더 계정의 총 개수는 20개예요. 한도에 도달해 계정을 더 만들어야 한다면 Snowflake 지원에 연락해요. 이 한도를 초과하지 않고 새 계정을 만들려고 리더 계정을 삭제했다면, 삭제된 리더 계정의 보존 기간인 7일 동안은 새 리더 계정을 만들 수 없어요.

리더 계정용 DDL

리더 계정 생성·관리를 위해 Snowflake는 일급 객체인 MANAGED ACCOUNT를 제공하며, 다음 DDL 명령을 지원해요.

  • CREATE MANAGED ACCOUNT
  • DROP MANAGED ACCOUNT
  • SHOW MANAGED ACCOUNTS

다른 역할이 리더 계정을 만들고 관리할 수 있게 하기

기본적으로 ACCOUNTADMIN 역할을 가진 사용자만 리더 계정을 만들 수 있고, 계정 소유자로서 이를 관리할 수 있어요. 이 작업을 다른 사용자에게 위임하려면 CREATE ACCOUNT 전역 권한을 다른 역할(시스템 정의 또는 커스텀)에 부여하면 돼요. 그런 다음 그 역할을 가진 사용자가 리더 계정을 만들고, 그 역할로 만든 계정 관리와 관련된 모든 작업을 수행할 수 있어요.

예를 들어 SYSADMIN 역할에 이 권한을 부여하려면:

USE ROLE ACCOUNTADMIN;
GRANT CREATE ACCOUNT ON ACCOUNT TO ROLE SYSADMIN;

SQL로 리더 계정 만들고 관리하기

웹 인터페이스 외에도 SQL로 리더 계정을 만들고 관리할 수 있어요.

리더 계정 만들기:

ACCOUNTADMIN 역할(또는 CREATE ACCOUNT 전역 권한이 부여된 역할)과 CREATE MANAGED ACCOUNT 명령을 사용해 리더 계정을 만들어요. 명령에서 계정 식별자와 계정의 관리자 역할을 할 사용자를 지정해요. 예:

USE ROLE ACCOUNTADMIN;

CREATE MANAGED ACCOUNT <account_name>
  ADMIN_NAME = <username>,
  ADMIN_PASSWORD = '<password>',
  TYPE = READER;

명령을 실행하면 계정 이름과 로그인 URL이 표시돼요.

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| status                                                                                                                                                                            |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| {"accountName":"READER_ACCT1","accountLocator":"IIB88126","url":"https://myorg-reader_acct1.snowflakecomputing.com","accountLocatorUrl":"https://iib88126.snowflakecomputing.com"} |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

참고:

  • 기본적으로 프로바이더가 만들 수 있는 리더 계정 수는 20개예요. 삭제된 리더 계정의 보존 기간은 7일이라, 한도를 초과하지 않기 위해 계정을 삭제했다면 7일 동안 새 계정을 만들 수 없어요.
  • url은 새 리더 계정의 권장 계정 URL이에요. 계정 로케이터(account locator)는 계정의 레거시 식별자예요.
  • 리더 계정은 프로바이더 계정과 같은 Snowflake 에디션을 사용하며 같은 리전에 만들어져요.

중요: 리더 계정을 만든 뒤 계정이 완전히 프로비저닝될 때까지 최대 5분 기다려요. 그런 다음 계정을 사용할 준비가 되기 전에 다음 추가 작업을 수행해야 해요.

  • 계정을 하나 이상의 셰어에 추가해 셰어 안의 Snowflake 객체가 계정과 공유될 수 있게 해요.
  • 계정을 구성해요.

리더 계정 이름 바꾸기:

리더 계정 이름을 바꾸려면 SQL 명령을 사용해야 해요. 자세한 내용은 계정 이름 바꾸기 문서를 참고해요.

리더 계정 삭제하기:

DROP MANAGED ACCOUNT 명령으로 리더 계정을 삭제해요. 예:

USE ROLE ACCOUNTADMIN;
DROP MANAGED ACCOUNT reader_acct1;

주의: 리더 계정을 삭제하면 계정에 만들어진 모든 객체가 삭제되고 계정에 대한 모든 접근이 즉시 제한돼요. 또한 이 계정은 총 리더 계정 수에서 제거돼요. 이 연산은 되돌릴 수 없으니 삭제 전에 충분히 고려해 주세요.

리더 계정 보기:

계정을 위해 만들어진 모든 리더 계정을 보려면 SHOW MANAGED ACCOUNTS 명령을 사용해요. 예:

USE ROLE ACCOUNTADMIN;
SHOW MANAGED ACCOUNTS;

이 명령은 계정의 총 리더 계정 수를 모니터링하는 데 사용할 수 있어요. 총 개수가 한도(20)에 도달하면 일부 계정을 삭제하거나 Snowflake 지원에 한도 증가를 요청해야 할 수 있어요. 또한 SNOWFLAKE 공유 데이터베이스의 READER_ACCOUNT_USAGE 스키마에 있는 뷰를 사용해 계정을 위해 만들어진 리더 계정에 대한 정보를 쿼리할 수 있어요.

장애 조치 시 클라이언트 연결 리디렉션

Client Redirect는 Business Critical(이상) 기능이에요. 리전에서 장애가 발생하면 Client Redirect로 리더 계정을 사용하는 데이터 소비자가 지속적으로 접근하게 할 수 있어요. 서로 다른 리전에 리더 계정 두 개를 만들고 하나를 기본 연결로 지정해요. 리전 장애 시 클라이언트 연결을 다른 리전의 리더 계정으로 리디렉션할 수 있어요.

더 알아보기