COF-C03 - Account Management and Data Governance - Section 2.3

Apply data governance controls including dynamic data masking, column-level security, and row access policies.

Apply Snowflake governance policies: dynamic data masking and column-level security to hide or tokenise sensitive column values based on the querying role, and row access policies to filter the rows a role can see. Recognise how a masking or row access policy is created once and attached to many objects.

dynamic data maskingmasking policiescolumn-level securityrow access policiesexternal tokenization

Practice question for this objective

Free sampleAccount Management and Data Governancehard

A data steward must choose between a masking policy and a row access policy for several governance requirements on the same SALES table. For which TWO requirements is a row access policy, rather than a masking policy, the correct Snowflake control? Select TWO.

  • AAn auditor role must be able to read full unmasked salary figures while every other role sees a redacted placeholder in that column.
  • BEach regional manager must see only the order rows for the territory codes assigned to their role, with all other rows absent from the result set. Correct
  • CRows for closed accounts must be suppressed from analyst queries while remaining queryable by the compliance role that the policy maps to those rows. Correct
  • DCard numbers must be stored only as non-sensitive tokens, with the raw values held by an external provider and detokenised on demand for authorised roles.
Row access policies decide which rows appear per query, whereas masking policies transform column values and tokenisation substitutes stored values. A row access policy is evaluated for each row to keep or remove it based on the querying context, so requirements that turn on row visibility belong to it, while column transformation and stored-value substitution belong to masking policies and tokenisation respectively.

Why A is wrong: Tempting because access depends on the role, but transforming a single column's value while keeping every row is a masking policy task, not row filtering.

Why B is correct: Correct, because deciding which rows appear based on the querying context is exactly what a row access policy evaluates per row to permit or remove it.

Why C is correct: Correct, because conditionally including or excluding whole rows based on the active role and row data is the defining behaviour of a row access policy.

Why D is wrong: Tempting because it protects sensitive data, but this token-in, value-out pattern is external tokenisation invoked from a masking policy, not row filtering.

See more COF-C03 practice questions, answers explained.

More in this domain

Back to all Account Management and Data Governance objectives, or the COF-C03 cert hub.

Examworthy is not affiliated with or endorsed by Snowflake. Original, blueprint-aligned practice material only.