The correct answer is C. Row access policy .
A row access policy is used to implement row-level security in Snowflake. It controls whether a row is visible in query results based on conditions such as the current role, current user, or values in a mapping table.
Why C is correct:
The question asks which feature controls visibility of particular records, meaning rows. Row access policies are designed exactly for that purpose.
Example concept:
CREATE ROW ACCESS POLICY region_policy
AS (region STRING) RETURNS BOOLEAN - >
region IN (
SELECT allowed_region
FROM role_region_mapping
WHERE role_name = CURRENT_ROLE()
);
This policy can allow users with different roles to see only the rows assigned to their region.
Why the other options are incorrect:
A. Dynamic Data Masking controls how column values are displayed. It masks data in columns but does not filter entire rows.
B. Secure Data Sharing allows data to be shared between accounts, but it is not the row-level filtering feature itself.
D. Object tagging classifies or labels objects for governance, but it does not directly control row visibility.
Official Snowflake documentation reference:
Snowflake documentation describes row access policies as schema-level objects that determine whether a row is visible in query results.
[Reference: Snowflake Documentation — Row access policies; Snowflake Documentation — Row-level security; SnowPro Core Study Guide — Data Protection and Governance., ========================]