데이터 공유와 Marketplace (Secure Data Sharing, 리스팅, 클린룸)
데이터를 복사하지 않고 다른 계정에 읽기 권한만 주는 Secure Data Sharing 의 원리, 직접 공유와 리스팅, 리전 간 자동 제공, 리더 계정, Marketplace 와 Data Clean Rooms, 2026년의 재공유와 제로 카피 통합까지 정리합니다.
공유의 원리
Secure Data Sharing 은 데이터를 옮기지 않습니다. 제공자(provider) 계정의 마이크로 파티션을 소비자(consumer) 계정이 그대로 읽게 메타데이터 수준의 권한만 줍니다.
- 소비자는 공유받은 데이터베이스를 읽기 전용으로 붙이고, 쿼리 컴퓨트는 소비자 웨어하우스가 냅니다.
- 제공자는 저장 비용만 내고, 데이터가 바뀌면 소비자에게 즉시 반영됩니다.
- 같은 리전 안의 계정끼리는 바로 공유되고, 다른 리전이나 클라우드는 복제가 필요합니다 (리스팅의 자동 제공이 대신해 줌).
직접 공유 (Share)
-- 제공자
CREATE SHARE sales_share;
GRANT USAGE ON DATABASE sales TO SHARE sales_share;
GRANT USAGE ON SCHEMA sales.public TO SHARE sales_share;
GRANT SELECT ON TABLE sales.public.orders TO SHARE sales_share;
GRANT SELECT ON VIEW sales.public.v_orders_by_region TO SHARE sales_share; -- secure view
ALTER SHARE sales_share ADD ACCOUNTS = partnerorg.partner_acct;
-- 소비자
CREATE DATABASE partner_sales FROM SHARE providerorg.provider_acct.sales_share;
GRANT IMPORTED PRIVILEGES ON DATABASE partner_sales TO ROLE analyst;- 공유할 수 있는 객체: 테이블, 외부 테이블, Iceberg 테이블, secure view, secure materialized view, secure UDF, Dynamic Table, 시맨틱 뷰 등. 일반 뷰는 정의가 드러나므로 secure view 로 공유합니다.
- 데이터베이스 역할(database role)을 공유에 넣으면 소비자 쪽에서 객체 묶음별로 권한을 나눠 줄 수 있습니다.
- 소비자별로 다른 행만 보여 주려면 secure view 안에서
CURRENT_ACCOUNT()를 매핑 테이블과 조인합니다.
리스팅 (Listing)
리스팅은 공유에 설명, 예시 쿼리, 약관, 가격, 자동 제공 설정을 붙인 상품 포장입니다.
| 종류 | 대상 |
|---|---|
| 비공개(private) 리스팅 | 지정한 계정이나 조직 안 |
| 조직(organization) 리스팅 | 같은 조직의 계정들 |
| Marketplace 공개 리스팅 | Snowflake Marketplace 의 모든 고객 (무료, 유료, 체험) |
- Cross-Cloud Auto-Fulfillment 을 켜면 소비자가 다른 리전이나 클라우드에 있어도 Snowflake 가 자동으로 복제해 제공합니다. 복제 비용은 제공자가 냅니다.
- 2026년 5월 리스팅 공유 제한(listing share restrictions)이 GA, 2026년 10월
LISTING_ACCESS_HISTORY개선이 GA 가 되었습니다. 누가 어떤 객체를 얼마나 쓰는지 제공자가 볼 수 있습니다.
리더 계정 (Reader Account)
Snowflake 계정이 없는 상대에게 공유하려면 제공자가 리더 계정을 만들어 줍니다. 리더 계정의 웨어하우스 비용은 제공자가 내므로, 리소스 모니터를 꼭 겁니다. 2026 Summit 에서는 Snowflake 가 아닌 곳에 Iceberg 와 Iceberg REST API 로 공유하는 Open Sharing 이 PuPr 로 발표되었습니다.
Marketplace 와 AI
- Snowflake Marketplace 에서는 데이터셋뿐 아니라 Snowflake Native App, 그리고 Cortex 검색용 콘텐츠인 Cortex Knowledge Extensions 를 받을 수 있습니다.
- 2026년 10월에는 에이전트가 Marketplace 를 찾아 주는 Agentic Marketplace Discovery 가 PuPr, 공유와 리스팅에 데이터 에이전트를 자동으로 붙이는 기능이 Summit 에서 PuPr 로 발표되었습니다.
- 시맨틱 뷰 공유는 2025년 11월부터 가능해져, 소비자가 받은 데이터에 바로 자연어 질문을 할 수 있습니다.
재공유와 제로 카피 통합
| 기능 | 내용 | 단계 (2026-10) |
|---|---|---|
| Data Resharing | 공유받은 데이터를 다시 공유 | GA (Summit 2026 발표) |
| SAP Business Data Cloud 제로 카피 | SAP 데이터를 복사 없이 양방향으로 | GA (2026-05) |
| Workday Data Cloud 제로 카피 | Workday 데이터 접근 | GA (2026-10-07) |
| Salesforce, Microsoft Fabric | 양방향 데이터 접근 | Fabric 은 2026-01 GA |
Data Clean Rooms
Snowflake Data Clean Rooms 는 두 회사가 서로의 원본을 보지 않고 합의한 분석(겹치는 고객 수, 캠페인 효과 등)만 실행하게 해 주는 기능입니다. 공유와 정책(집계 정책, 프로젝션 정책) 위에서 동작하고, 2026 Summit 에서 여러 회사가 함께 쓰는 Multi-party Collaboration 이 GA 로 발표되었습니다. 릴리스 노트에 거의 매주 업데이트가 올라오므로 기능 단위로 확인합니다.
거버넌스와 비용 요령
- 공유 객체에도 마스킹과 행 접근 정책이 그대로 적용됩니다. 정책이
CURRENT_ROLE()에 기대면 소비자 계정에서는 기대와 다르게 동작하므로, 공유용 정책은CURRENT_ACCOUNT()나IS_DATABASE_ROLE_IN_SESSION()기준으로 씁니다. - 제공자는
DATA_SHARING_USAGE스키마 뷰로 리스팅 사용량을 봅니다. - 리전 간 자동 제공은 복제 크레딧과 전송 비용이 드니, 소비자가 적은 리전은 수요가 생길 때만 켜는 설정을 씁니다.
트러블슈팅
증상: 소비자가 공유 데이터베이스를 만들었는데 테이블이 보이지 않습니다.
원인: 소비자 쪽에서
IMPORTED PRIVILEGES를 역할에 주지 않았거나, 제공자가 스키마USAGE를 공유에 빠뜨렸습니다.해결: 제공자는
SHOW GRANTS TO SHARE sales_share;로 권한을 확인하고, 소비자는 사용할 역할에 권한을 줍니다.증상: 공유한 뷰를 소비자가 조회하면 "view definition is not accessible" 류의 오류가 납니다.
원인: 일반 뷰를 공유했거나 뷰가 공유되지 않은 다른 데이터베이스를 참조합니다.
해결: secure view 로 바꾸고, 다른 데이터베이스 참조는
REFERENCE_USAGE권한을 공유에 줍니다.