리더 계정 관리하기
리더 계정 관리하기
리더 계정(reader account, 이전 명칭 "읽기 전용 계정")은 프로바이더가 아직 Snowflake 고객이 아닌 소비자와 데이터를 공유할 수 있게 해 주며, 소비자가 Snowflake 고객이 될 필요가 없어요.
본문
참고: 이 주제의 모든 작업은
ACCOUNTADMIN역할 또는CREATE ACCOUNT전역 권한이 부여된 역할을 사용해 수행해야 해요.
개요
리더 계정은 데이터 소비자가 계정 프로바이더가 공유한 데이터에 접근하고 쿼리할 수 있게 해주며, 소비자는 설정·사용 비용이 들지 않고 Snowflake와 라이선스 계약을 체결할 필요도 없어요. 리더 계정은 프로바이더 계정이 만들고 소유하며 관리해요. 즉 리더 계정의 사용자가 발생시킨 크레딧 비용은 프로바이더 계정이 모두 부담해요. 표준 소비자 계정과 비슷하게 프로바이더 계정은 셰어를 사용해 데이터베이스를 리더 계정과 공유하지만, 리더 계정은 자신을 만든 프로바이더 계정의 데이터만 소비할 수 있어요.
참고: 리더 계정의 웨어하우스는 매달 무제한 크레딧을 소비할 수 있으며, 이 비용은 프로바이더 계정에 부과돼요. 사용량을 제한하려면 웨어하우스에 리소스 모니터(resource monitor)를 설정해요.
리더 계정에서 제한/허용되는 것
리더 계정은 주로 계정 프로바이더가 공유한 데이터를 쿼리하기 위한 것이에요. 예를 들어 구체화된 뷰(materialized view)를 만들어 데이터로 작업할 수 있어요.
리더 계정에서는 다음 작업을 수행할 수 없어요.
- 리더 계정의 객체에 데이터 메트릭 함수 설정
- 새 데이터 업로드
- 기존 데이터 수정
- 스토리지 통합(storage integration)을 사용한 데이터 언로드 — 단, 연결 자격 증명으로
COPY INTO <location>명령을 사용해 클라우드 스토리지 위치로 데이터를 언로드할 수는 있어요.
또한 리더 계정에서는 다음 명령을 실행할 수 없어요.
INSERT,UPDATE,DELETE,MERGECREATE IMAGE REPOSITORYCOPY INTO <table>CREATE MASKING POLICYCREATE MODELCREATE PIPECREATE ROW ACCESS POLICYCREATE SERVICECREATE SHARECREATE STAGECREATE STREAMLITSHOW PROCEDURES
그 외의 모든 연산은 허용돼요.
리더 계정에 대한 지원은 누가 제공하나요?
리더 계정은 Snowflake와 라이선스 계약이 없으므로 계정의 일반 사용자에게는 지원 서비스가 제공되지 않아요. 대신 프로바이더로서 계정 안 사용자의 질문과 요청을 받고 적절히 응답해요. 직접 답변하거나 해결할 수 없다면 정상 채널(지원 계약에 명시된 대로)을 통해 Snowflake 지원 티켓을 열 수 있어요. Snowflake 지원의 응답을 받으면 그 정보를 리더 계정의 적절한 사용자에게 전달해요.
웹 인터페이스로 리더 계정 만들고 관리하기
ACCOUNTADMIN 역할(또는 CREATE ACCOUNT 권한이 부여된 역할)이 있다면 Snowsight로 리더 계정 생성·관리 대부분의 작업을 수행할 수 있어요.
Snowsight에서:
- Snowsight에 로그인해요.
- 탐색 메뉴에서 Admin » Accounts를 선택해요.
- Accounts 탭을 선택해요.
- Reader accounts 하위 탭을 선택해요.
이 페이지에서 다음을 할 수 있어요.
- + New를 선택해 리더 계정을 만들어요.
- 기존 리더 계정을 검토해요.
- … » Drop을 선택해 리더 계정을 삭제해요.
참고: 기본적으로 프로바이더가 만들 수 있는 리더 계정의 총 개수는 20개예요. 한도에 도달해 계정을 더 만들어야 한다면 Snowflake 지원에 연락해요. 이 한도를 초과하지 않고 새 계정을 만들려고 리더 계정을 삭제했다면, 삭제된 리더 계정의 보존 기간인 7일 동안은 새 리더 계정을 만들 수 없어요.
리더 계정용 DDL
리더 계정 생성·관리를 위해 Snowflake는 일급 객체인 MANAGED ACCOUNT를 제공하며, 다음 DDL 명령을 지원해요.
CREATE MANAGED ACCOUNTDROP MANAGED ACCOUNTSHOW 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로 리더 계정을 사용하는 데이터 소비자가 지속적으로 접근하게 할 수 있어요. 서로 다른 리전에 리더 계정 두 개를 만들고 하나를 기본 연결로 지정해요. 리전 장애 시 클라이언트 연결을 다른 리전의 리더 계정으로 리디렉션할 수 있어요.