A provider wants to distribute an application that runs stored procedures and user-defined functions inside each consumer's own Snowflake account, so the provider's proprietary logic executes on the consumer's data without the provider seeing that data. Which Snowflake capability is designed for this?
- AA secure data share containing the procedures, because sharing the database that holds the stored procedures lets each consumer run the provider's logic over their own data in place
- BA scheduled task in the provider account, because a task can reach into each consumer account on a schedule to execute the provider's procedures against the consumer's data
- CAn application built with the Snowflake Native Apps Framework, because it packages procedures and functions that install and run inside the consumer account against the consumer's own data Correct
- DA materialized view published to the Marketplace, because the view precomputes the provider's transformations and refreshes them automatically inside each consumer account
Why A is wrong: A secure data share grants read access to data objects and shared views, but it is built to share data rather than to package and install an application with its own logic running in the consumer account, so it does not fit.
Why B is wrong: A task runs only within its own account and cannot execute against another account's data, so it cannot deliver provider logic into consumer accounts and is the wrong mechanism entirely.
Why C is correct: The Snowflake Native Apps Framework lets a provider package logic such as stored procedures and functions into an app that installs and executes inside the consumer's account, so the provider's code runs on consumer data without the provider accessing it.
Why D is wrong: A materialized view stores precomputed query results, not executable application logic such as procedures and functions, so it cannot package and distribute a running application to consumers.