databricks/governance
advanced
Connecting…

Row filters and column masks

Enforce who sees which rows and which columns inside the table, not in every query.

Lesson 16 of 24 · Databricks path

Explain it at my level

  1. N views
  2. ROW FILTER
  3. SET MASK
  4. In the plan
  5. Tag policy
Watch the canvas:privileged principal + resultrestricted principal + resultthe governed tablerow filter functioncolumn mask functionlogical plantag + policyview-per-role bypassLive simulation
Two principals · identical SELECT *finance_adminsalso in pii_readersemea_supportnot in pii_readersmain.sales.ordersone table · one GRANT SELECTall rows, all columns2,418,006 rowsevery region182,441 rowsregion = 'EMEA' onlyThe old workaroundorders_emeaSELECT … WHERE region = 'EMEA'one object per audienceorders_pii_safeCASE over the email columnre-released on every schema changeGRANT on base tablemigration · debugging · service principalthe whole scheme is bypassed🔒A filtered view protects nobody who can already reach the base table.
Two principals send the identical SELECT *. The table decides what comes back — not the query, and not a view.