Which statements about Snowflake's GRANT FUTURE PRIVILEGES syntax are accurate? (Select TWO)
- A. Future grants are revoked automatically if the object ownership is transferred to a different role.
- B. Future grants can be defined at the database level to apply to all schemas within the database, but not at the schema level.
- C. If an explicit privilege is later granted on a specific object that is covered by a future grant, the explicit grant takes precedence for that object only.✓ Correct
- D. Future grants apply retroactively to all existing tables in the schema at the time the GRANT FUTURE statement is executed.
- E. GRANT FUTURE SELECT ON TABLES IN SCHEMA mydb.myschema TO ROLE analyst_role automatically grants SELECT on all tables created in that schema going forward, without requiring additional GRANT statements.✓ Correct
Explanation
Option E is correct: GRANT FUTURE PRIVILEGES is designed exactly for this forward-looking use case — all tables created in the specified schema after the grant is issued will automatically inherit the privilege for the specified role, eliminating the need for manual per-object grants. Option C is correct: explicit object-level grants override future grants for that specific object; this is important for exceptions to the default pattern (e.g., restricting a sensitive table that would otherwise be covered by a future grant). Option D is false and is a very common misconception — future grants are NOT retroactive; they only apply to objects created after the GRANT FUTURE statement is executed. Existing objects require separate grants. Option B is incorrect — future grants CAN be defined at both the database level (applying to all schemas in the database) AND the schema level. Option A is false — future grants are not automatically revoked upon ownership transfer; ownership changes affect OWNERSHIP privilege, not future grant assignments.