A Snowflake Native App developer is creating an application that needs to access data from multiple tables within a provider account. The developer wants to ensure the principle of least privilege and minimize the surface area for potential security vulnerabilities. Which approach is the MOST secure and efficient for granting the necessary privileges to the application?
Correct Answer: B
Option B is the MOST secure and efficient. Granting 'USAGE' on databases and schemas allows the application to access these containers, while granting 'SELECT only on the necessary tables adheres to the principle of least privilege, minimizing potential security risks. Options A, C, and E grant overly broad privileges, which is not a secure practice. Option D, while seemingly applying least privilege, creates unnecessary role complexity and doesn't directly link the application role to the required object privileges.