ADA-C01 Question 460
Single answerShare objects securely in a data share (for example, what type to use)A data provider needs to share a curated customer analytics dataset with several external consumers using Secure Data Sharing. The dataset is built from multiple base tables and includes logic that masks internal test accounts and excludes rows for regions that are still under embargo. The provider wants consumers to query the shared data without exposing the underlying base tables or the business logic used to derive the dataset. Which object should the provider include in the share to meet these requirements?
- A
A standard view that references the base tables
- B
A secure view that references the base tables
- C
A materialized view so consumers cannot infer the underlying query logic
- D
A temporary table populated with the filtered dataset before creating the share
Show answer and explanation
Correct answer: B
Explanation
The correct answer is a secure view. In Snowflake Secure Data Sharing, providers can share database objects such as tables, secure views, and secure UDFs. When the requirement is to expose derived data while concealing the underlying tables and business logic, Snowflake best practice is to share a secure view rather than a standard view. Secure views are specifically designed to limit exposure of the view definition and help protect sensitive logic. This is particularly important when data consumers should only see the final curated dataset and not how it is assembled. Standard views do not provide the same protection guarantees for shared scenarios. Temporary tables are not shareable, and materialized views do not address the core requirement of securely masking implementation details. Refer to Snowflake documentation for Secure Data Sharing and secure views, which describe using secure objects when sharing derived or filtered datasets externally.
- A. Incorrect.
Incorrect. Standard views are not appropriate for secure data sharing when the provider must hide the underlying query definition and prevent exposure of details through view metadata or query behavior. In Snowflake, only secure views are designed for scenarios where the provider needs to obscure the underlying logic while sharing derived data.
- B. Correct.
Correct. A secure view is the right object type when sharing derived data while protecting the underlying base tables and transformation logic. Secure views are specifically intended for data sharing and other scenarios where the view definition and certain internal details should not be exposed to consumers. This allows the provider to share only the curated result set rather than direct access to the raw tables.
- C. Incorrect.
Incorrect. Materialized views are not the recommended object type for this requirement. While a materialized view stores precomputed results, it does not exist for the purpose of securely obscuring the query definition in a data share. The question is about securely sharing derived data and hiding implementation details, which is the role of a secure view.
- D. Incorrect.
Incorrect. Temporary tables cannot be shared because they are session-scoped and not intended for secure data sharing. Even beyond that limitation, creating a temporary copy adds unnecessary operational overhead and does not align with Snowflake's best practice of sharing live data objects directly through shares.