A Snowflake Native Application is designed to process customer data using a series of stored procedures. One of the stored procedures, process data', requires access to a stage named 'customer stage' in the consumer's account to load dat a. The application role 'app_role' is intended to manage all access within the application. However, the procedure fails with a permission error during testing in the consumer environment. Which of the following combination of steps is required to fix the problem?
Correct Answer: A,E
Options A and E are correct. Option A: The 'app_role' needs 'USAGE privileges on the database and schema to access objects within them. It also needs 'READ' privilege on the stage to load data from it. Option E: If the stored procedure is accessing objects with the 'OWNER rights instead of 'CALLER rights, then it doesn't matter what the 'app_role' has privileges to. The procedure needs to be defined to execute as the caller to take advantage of the consumers permissions to external stages. Options B and C are incorrect because granting privileges directly to the provider account or the consumer account is the incorrect pattern for Snowflake Native Apps. The privileges should be managed within the consumer account, usually through an 'app_role' . Option D includes an unnecessary intermediary role that is not needed.