In this article we explore how Snowflake’s Secure Data Sharing and the Snowflake Marketplace enable seamless collaboration between organisations. We’ll look at the mechanics of secure shares, the difference between private and public options, how publishing to the Marketplace works, and finish with a practical example and checklist for responsible sharing.
Features change from time to time with new capabilities being added regularly. It is recommended that you review the documentation for the latest on data sharing.
Table of Contents
Open Table of Contents
Understanding Secure Data Sharing
How Secure Shares Work
A share in Snowflake is a metadata object that specifies which databases, schemas, and objects (tables, views, UDFs) are made available to another Snowflake account. No data is copied; instead, consumers query the data directly in place, ensuring they always see the latest version.
Key characteristics
-
Zero Data Movement: The consumer queries your data in your Snowflake environment.
-
Read-Only Access: Consumers cannot modify shared objects.
-
Granular Control: Producers define exactly which objects are included.
Private vs Public Shares
-
Private Shares: Shared with specific Snowflake accounts (identified by account locator). This is commonly used for strategic partnerships, B2B exchanges, or subsidiaries.
-
Public Shares: Available more broadly, such as through the Snowflake Marketplace. These allow data providers to reach a wider audience while maintaining security controls.
Publishing to the Snowflake Marketplace
The Snowflake Marketplace is a central hub where data providers can publish public shares, either free or commercial.
Benefits include:
-
Discoverability: Potential consumers can find and trial datasets easily.
-
Monetisation: Providers may offer data under subscription models.
-
Trust: Marketplace listings are subject to governance and review, ensuring consistent standards.
Publishing involves registering as a provider, preparing data in a clean, well-documented schema, and creating a managed listing that links to your share.
Example: Creating a Share
Here’s a simplified SQL example of creating a secure share:
-- 1) Create the share object
CREATE SHARE sales_share;
-- 2) Add objects to the share
GRANT USAGE ON DATABASE analytics TO SHARE sales_share;
GRANT USAGE ON SCHEMA analytics.sales TO SHARE sales_share;
GRANT SELECT ON TABLE analytics.sales.monthly_revenue TO SHARE sales_share;
-- 3) Grant to a specific consumer account
ALTER SHARE sales_share ADD ACCOUNT = 'org12345.account56789';
On the consumer side, the recipient can create a database from the share:
CREATE DATABASE shared_sales FROM SHARE provider_org.sales_share;
At this point, the consumer queries shared_sales as if it were their own database—without holding a physical copy.
Checklist: Sharing Responsibly
When sharing data across organisations, consider the following best practices:
-
Define Scope Carefully: Share only what is required, at the schema/table level, not entire databases.
-
Apply Row/Column Security: Use secure views or masking policies if consumers should only see partial data.
-
Document Your Share: Provide schema descriptions, data dictionaries, and usage notes.
-
Monitor Usage: Track which accounts have access and periodically review entitlements.
-
Stay Current: Regularly review Snowflake documentation for evolving features and governance capabilities.
Conclusion
Snowflake’s secure data sharing model transforms how organisations collaborate. By avoiding data duplication and enabling real-time access, it creates efficiencies while upholding governance. Whether you are sharing privately with trusted partners or publishing to a wider audience via the Marketplace, a disciplined approach ensures that data sharing remains both strategic and secure.