When to Connect Using Views versus Tables
In Snowflake, views inherit policies from their underlying tables. That means any masking or row access policies applied to a table also apply when querying data through a view.
To simplify policy management, it is usually best to connect and apply rules to tables, then use views to access the data. This avoids duplicating policies across multiple objects.
For details on connecting columns from views (including supported features and limitations), see Connect Columns to ALTR.
Use Cases for Creating Policies on Views
Section titled “Use Cases for Creating Policies on Views”Databases Created from Snowflake Shares
Section titled “Databases Created from Snowflake Shares”To govern data within a share, you can create a separate database with views that select from the shared database. You can then use ALTR to govern access to these views while preventing users from querying the share database directly.
Materialized Views
Section titled “Materialized Views”Snowflake does not allow materialized views to select from base tables that include Dynamic Data Masking Policies or Row Access Policies. In this scenario, you can use ALTR to directly govern the materialized view while preventing users from querying the share database directly.
Organizations Requiring Different Access Rules for the Same Data
Section titled “Organizations Requiring Different Access Rules for the Same Data”If your organization has a data consumption paradigm that involves a single role having different access to a dataset based on what view it is selecting, then this can be accomplished by using ALTR to govern the view directly.