The correct answer is D. Create a secure view .
A secure view is the recommended and efficient way to share a filtered subset of data with a consumer account using Snowflake Secure Data Sharing. The provider can define the rows and columns that should be visible, then share the secure view instead of sharing the full base table.
Why D is correct:
A secure view protects the view definition from unauthorized users and can be used to expose only selected rows or columns from an underlying table.
Example concept:
CREATE SECURE VIEW shared_sales_west AS
SELECT order_id, customer_id, amount, region
FROM sales
WHERE region = ' WEST ' ;
The provider can then include this secure view in a share, allowing the consumer to query only the approved subset of data.
Why the other options are incorrect:
A. A secure UDF can protect function logic, but it is not the most efficient method for sharing a subset of table data.
B. A dynamic table materializes transformation results, but it is not the standard method for secure data sharing with filtered access.
C. An external table allows querying data in external cloud storage. It is not the best method for sharing a subset of Snowflake table data.
Official Snowflake documentation reference:
Snowflake documentation explains that secure views are used with Secure Data Sharing when a provider wants to share filtered or restricted data while protecting the underlying query definition.
[Reference: Snowflake Documentation — Secure Data Sharing; Snowflake Documentation — Secure views; SnowPro Core Study Guide — Data Protection and Governance., ==]