You are developing a Snowflake Native Application that utilizes a Streamlit frontend. The application requires access to specific data in the consumer account. You've already defined the necessary roles in your provider account. Which of the following steps are absolutely necessary to grant the Streamlit application the appropriate permissions to access the consumer's data? Assume the provider account has already shared the application package.
Correct Answer: C,E
Options C and E are the most accurate. Option C is correct because it leverages application roles, which are the recommended way to manage privileges in Snowflake Native Apps. Granting the application role to a user in the consumer account allows them to access the data via the application. Option E is correct because granting privileges directly to the 'APPLICATION' object is essential for the application to function correctly with its own access rights. Additionally, granting 'app_public' ensures basic functionality is available to the application. Option A is incorrect because applications should not be connecting to the database using standard connectors with explicit credentials in Native Apps. Option B is incorrect because passing role names as query parameters is not a secure or recommended practice. Option D is incorrect because sharing a database role directly is not the appropriate mechanism for granting access within a Snowflake Native App. The application package and its associated roles should manage the access.