COF-C03 Question 326
Single answerProviderA software company wants to monetize curated Snowflake data products by sharing them with many customer accounts. The company needs to centrally manage the data product, allow customers to query the data in their own Snowflake accounts, and avoid copying the underlying data for each customer. Which approach should the company use as the provider?
- A
Create a secure data share from the provider account and add the required database objects so consumer accounts can create databases from the share
- B
Export the data to external cloud storage for each customer and have each customer load it into their own Snowflake account
- C
Create a database role in the provider account and grant it directly to roles in each consumer account
- D
Replicate the provider database into every consumer account so each customer has an independent physical copy
Show answer and explanation
Correct answer: A
Explanation
The best answer is to use Snowflake Secure Data Sharing, where the company acts as the provider and creates a share containing the approved objects for consumers. Consumer accounts can then create a database from that share and query the shared data in place. This is the standard Snowflake pattern for providers distributing data products because it avoids data duplication, keeps the provider in control of updates, and supports centralized governance. A common misconception is to confuse sharing with replication or bulk export/import workflows. Replication creates additional copies and is intended for continuity and failover scenarios, while exporting and reloading data defeats the purpose of live sharing. Another misconception is assuming account roles or database roles can be granted directly across unrelated customer accounts for this purpose; Snowflake uses shares for provider-to-consumer access. These behaviors align with Snowflake documentation on Secure Data Sharing and provider/consumer concepts.
- A. Correct.
Correct. In Snowflake data sharing, the provider creates a share and adds supported objects such as databases, schemas, secure views, and secure UDFs where applicable. Consumers then create a database from the share in their own accounts. This allows live access to provider-managed data without copying the underlying storage into each consumer account, which is a core benefit of Snowflake Secure Data Sharing.
- B. Incorrect.
Incorrect. Exporting data to cloud storage and requiring each customer to ingest it is not Snowflake Secure Data Sharing. That approach introduces unnecessary data movement, operational overhead, version-control challenges, and storage duplication. It does not meet the requirement to centrally manage a single data product without copying data for each customer.
- C. Incorrect.
Incorrect. Database roles can be granted within an account hierarchy, but they are not the mechanism a provider uses to expose shared data directly to external consumer accounts. Cross-account data sharing is accomplished through shares, not by granting provider account roles to roles in a different customer account.
- D. Incorrect.
Incorrect. Replication is designed for business continuity, disaster recovery, and regional/account replication use cases, not for distributing a monetized data product to many customers. It would also create separate copies and additional management overhead, which conflicts with the requirement to avoid copying the underlying data for each customer.