COF-C03 Question 334
Single answerSharing and resharingA data provider account in Snowflake creates a secure share that contains several secure views over internal tables. The provider adds Account B as a consumer. Account B creates a database from the share and wants to make the same shared data available to its own subsidiary, Account C, without copying the data into new tables. Which action should Account B take to meet this requirement?
- A
Create a new outbound share in Account B based on the database created from the provider's share, and add Account C to that share.
- B
Clone the shared database in Account B, then share the cloned database with Account C.
- C
Request that the provider enable Account B to reshare the data, then create a share from the imported database in Account B to Account C.
- D
Create a database role on the imported database in Account B and grant that database role to Account C.
Show answer and explanation
Correct answer: C
Explanation
This question tests knowledge of Snowflake secure data sharing and resharing. A consumer account can create a database from a provider's share, but it cannot automatically redistribute that shared data to another account. To allow this, the original provider must explicitly permit resharing. Once enabled, the consumer can create its own share from the imported database for downstream consumers. This is the supported way to pass shared data through multiple accounts without copying the underlying data. Cloning and database roles do not replace resharing permissions. Relevant Snowflake documentation covers Secure Data Sharing, imported databases, and resharing limitations and permissions.
- A. Incorrect.
Incorrect. A consumer cannot normally create an outbound share directly from an imported database created from another account's share unless the provider has explicitly enabled resharing for that consumer. Without provider authorization, this action is not allowed.
- B. Incorrect.
Incorrect. An imported database created from a share cannot be cloned in a way that bypasses sharing restrictions for redistribution. This option reflects a common misconception that cloning can be used to convert shared data into independently shareable local objects. Snowflake does not allow this as a workaround for resharing controls.
- C. Correct.
Correct. In Snowflake, resharing is supported only when the original provider grants the consumer permission to reshare the data. After that authorization is in place, the consumer can create a share based on the imported database and grant access to another account. This meets the requirement of making the same data available without physically copying it.
- D. Incorrect.
Incorrect. Database roles can be used for access control within a database, including with shared databases in some scenarios, but they do not allow cross-account redistribution of shared data by themselves. Granting a database role to Account C does not create a cross-account share or enable Account C to consume the data.