Adovo

Data & Analytics

A Unity Catalog row filter fails when its lookup table is filtered too

A mapping-table row filter can create a nested policy conflict. Diagnose the security graph before loosening access.

October 23, 2026

A protected fact table uses a lookup table to decide which rows a user may see. The lookup table also has a row policy, and a query fails when the two policies interact. A Databricks community discussion surfaced this design problem; the discussion itself was only accessible as a search lead in this research session.

Identify the policy graph

Capture the full error class, the protected table, policy function and every table read by that function. Databricks documents an unsupported nested row or column access policy error. The important question is whether a policy evaluation itself reads another protected relation. Do not infer that a failed query means the user should receive broader table privileges.

Redesign the entitlement lookup

Review the Unity Catalog row-filter and column-mask limits. A security-owned entitlement table or a carefully designed dynamic view may remove the nested evaluation, but each option has a different ownership and audit model. Keep the entitlement source narrow: user or group, allowed business key, effective period and change owner. Test both positive and negative access cases using non-admin identities.

Make the failure safe

Queries that hit a policy error should stop. Avoid a fallback that returns an unrestricted table, and avoid removing the lookup policy merely to make the dashboard green. Include policy dependency checks in deployment review, because a later policy on the lookup table can break a formerly valid fact-table filter.

Adovo’s view

An access rule is a small program with dependencies. If the dependencies change, the rule must be retested like any other production code. A secure failure is inconvenient; an invisible permission expansion is worse.

Continue exploring

Data & Analytics

DatabricksDelta Lake

Before changing a Delta table schema, find the consumers your lineage misses

Observed lineage is useful, but it can miss infrequent or external consumers. Combine it with declared contracts before renaming or removing a Delta column.

Read more

Data & Analytics

DatabricksUnity Catalog

Unity Catalog migration: test the job and storage permissions before cutover

Moving tables from Hive Metastore can leave jobs or path-based reads failing. Validate compute, grants and external locations with real principals.

Read more

Data & Analytics

Microsoft FabricDirect Lake

Fabric Direct Lake RLS passes a role test while source access tells another story

Semantic-model row security and lakehouse permissions are separate controls. Test both before sharing a Direct Lake model.

Read more
Explore data and analytics services →