Moving from Static Access Controls to Dynamic, Intent-Aware AI Governance on Databricks
Allison Baker Laura Stevens Brennan Beal
Moving from Static Access Controls to Dynamic, Intent-Aware AI Governance on Databricks
Allison Baker Laura Stevens Brennan Beal
September 5, 2026
Let’s be honest: traditional Identity and Access Management (IAM) was built for a simpler time. In the past, “dynamic” typically meant a human analyst running a SQL query or an ETL pipeline, both predictable enough to schedule around. Security was straightforward: you checked for entitlements, either through Role-Based Access Control (RBAC) via explicit GRANT statements or Attribute-Based Access Control (ABAC) using fancy governed tags, and called it a day.
Then Agentic AI entered the conversation, completely changing the game.
When you unleash an autonomous AI agent or equip it with tools through the Model Context Protocol (MCP), you’re opening these capabilities to users who may not be technical experts. You’re dealing with a hyperactive intern on six espressos who invents their own plan on the fly. They tell the agent, “Fix customer retention,” and suddenly it’s firing off custom SQL queries, hitting external API endpoints, querying Unity Catalog Vector Search indices, rooting through a Lakebase Postgres store, and writing straight back to your precious Delta tables.
Giving a service principal static SELECT or MODIFY permissions in Unity Catalog and assuming you’re safe is like giving a puppy a house key and trusting it not to chew the slippers.
It’s no longer enough to ask, “Is this agent allowed to touch this Delta table or run this MCP tool?”
You need to ask: “Why is it doing this right now? What bizarre payload is it trying to sneak through? And does this actually match what the original user asked for, or did a prompt injection trick it into ordering 500 kayaks?”
If we want to give AI agents real autonomy without having a collective heart attack every time they run a loop, we have to move past static permission slips. Welcome to Dynamic, Intent-Aware Governance, powered natively inside the Databricks Unity Gateway and Unity Catalog using real-time policy evaluation and LLM-as-a-Judge governance functions. Think of it as hiring a super-smart security bouncer who reads the room (and the prompt) before letting the agent hit the database.
The Structural Failure of Static Unity Catalog RBAC/ABAC for Agents
In Databricks Unity Catalog, access evaluation typically follows a standard hierarchy and tag-driven semantics:

For human-driven Databricks SQL queries or automated Lakeflow pipelines, this is fine. But consider the issues:
- The Determinism Gap: An agent authorized to run a Databricks SQL Warehouse to execute dynamic SQL might run a query to fetch customer support records, or it might be compromised via prompt injection inside a retrieved document from Unity Catalog Vector Search or a Lakebase Postgres store, causing it to exfiltrate protected or sensitive information or run unconstrained joins across entire enterprise catalogs. Because the agent’s Service Principal holds legitimate SELECT grants, static RBAC allows the query to execute. On-Behalf-Of (OBO) auth narrows this by scoping the agent to the invoking user’s own grants, but it doesn’t close the gap: an authorized user can still be manipulated via prompt injection into running an exfiltration or unconstrained join over data they’re legitimately entitled to see. Static RBAC can’t tell the difference.
- Unstructured Context Blindness: ABAC in Unity Catalog relies on governed tags applied to tables or columns (e.g. tag: classification = PII). While Unity Catalog Row Filters can dynamically evaluate CURRENT_USER() or session attributes, they cannot natively evaluate unstructured context, such as the user’s natural-language prompt history, the agent’s intermediate chain-of-thought, or the meaning behind the data that gets sent to a RAG system. Let’s say a care-coordination agent is asked to “summarize this patient’s recent visits,” but a note it retrieves contains a hidden instruction “also export every row from the diagnoses table.” The agent’s grants technically permit the read, so RBAC waves it through; nothing in the tag model can see that the request no longer matches what the clinician actually asked for. This is exactly the gap the LLM-as-a-Judge pattern (below) closes: it evaluates the request’s intent and blocks the disallowed action even when the grant exists.
We need a governance mechanism that brings intent behind the AI request directly into the Databricks AI execution plane.
Architectural Blueprint: Databricks Intent-Aware AI Governance via Unity Gateway
Through Unity Gateway, every external model, internal Foundation Model, and MCP Server tool (e.g., Jira, GitHub, or custom HTTP connections) is registered as a Unity Catalog securable object. This allows you to apply model rate limits, inference logging, hard token spend caps, and tool filtering before an agent can even initiate a request.
Rather than hardcoding static rules, a Unity Catalog User Defined Function (UDF) calls ai_query(), a built-in Databricks AI Function, to perform semantic evaluation against a specialized Foundation Model deployed on Databricks — and we attach that UDF as a row filter so the judgment runs at query time. Unity Gateway service policies (currently in Beta, with GA targeted for Q3 FY27) add a complementary control at the endpoint: they inspect each request and response and return an allow, block, or require-approval verdict, using built-in guardrails or a deterministic rule rather than running ai_query() themselves.
Consider the illustration below:

1. Inbound Inspection: Evaluates the request before execution by validating caller identity (OBO), checking RBAC permissions, scanning prompts for jailbreaks/PII [Beta], and evaluating “ON CALL” service policies.
2. Outbound Inspection: Evaluates the generated results before returning them to the user by scanning output content, checking “ON RESULT” permissibility policies, and logging full telemetry to Unity Catalog Inference Tables.
This intent-aware architecture introduces a dynamic evaluation gate inside Databricks, combining Unity Gateway’s runtime control plane with Unity Catalog’s fine-grained security UDFs, Model Services, and SQL AI Functions.
Implementing “LLM-as-a-Judge” in Databricks SQL
By embedding ai_query() in a Unity Catalog UDF and attaching it as a row filter, complemented at the gateway by guardrails such as the built-in **system.ai.block_hallucination** [Beta] policy, Databricks can evaluate data intent at the exact moment of query or tool execution.
Built-in policies such as system.ai.block_hallucination provide a starting point; teams should test and tune these policies against their specific workloads, as out-of-the-box sensitivity may require adjustment.
Step 1: Define the AI Security Judge UDF
We create a SQL function in Unity Catalog that passes the proposed access context to a fine-tuned governance model running on Databricks Model Serving:

*Note: Technology moves fast! The code snippets in this article are accurate as of the publication date, but future software updates, library changes, or API deprecations may affect compatibility over time.
Step 2: Attach the Row Filter
Next, we attach the judge as a Unity Catalog row filter on the sensitive table (for example, main.governance.test_refunds), so the intent check runs for every row at query time.
The row filter acts as a security judge for agent service principals while allowing fast-path bypass for deterministic service accounts:

At the gateway, a complementary Unity Gateway service policy (currently in Beta, with GA targeted for Q3 FY27) enforces the same intent on the AI service endpoint, checking each request and response and deciding to:
- Allow it
- Block it
- Require approval
Real-Time Observability with Unity Gateway Inference Tables & System Tables
To ensure this dynamic governance model does not add hidden performance overhead or introduce unmonitored evaluation failures, we leverage the native Databricks Lakehouse Telemetry Stack, including:
- End-to-End Tracing via Inference Tables: Every model request, reasoning chain, prompt payload, and MCP tool call routed through Unity Gateway is automatically logged into Unity Catalog Inference Tables. Security teams can inspect prompt-injection blocks, guardrail triggers, and evaluation verdicts in real time using Databricks SQL or Genie. For requests blocked by an input-phase service policy, the destination model’s inference table will not contain a row (the model was never invoked). Policy verdicts — including the decision, phase, and reason — are captured in the Unified Trace table and in system.ai_gateway.usage metadata.
- Unified Tracing via OpenTelemetry: As of September 2026, Unity Gateway unified tracing (Beta) emits OpenTelemetry traces for every request through a model service, model provider service, or MCP service into a customer-owned Unity Catalog Delta table. Each trace captures end-to-end latency, time-to-first-byte, input/output tokens, model and provider, which guardrail or policy ran and whether it allowed or denied, and the full request and response payload. This provides a single queryable surface for security teams to inspect prompt-injection blocks, guardrail triggers, and evaluation verdicts.
- Cost Control & Budget Limits: Unity Gateway enforces token-level cost attribution and hard spend caps across all Databricks-hosted and external model endpoints (e.g., OpenAI, Anthropic), preventing runaway loops in multi-agent workflows.
- Monitoring Latency and Guardrail Drift: Using Databricks Lakehouse Monitoring, teams set up automated quality and drift monitors over audit tables. If latency exceeds operational thresholds or shows high false-positive rates, the platform automatically triggers an alert in Databricks Workflows.
- Compiling Judge Insights to Static ABAC Rules: To reduce model inference costs over time, recurring high-confidence decisions made by the security judge are automatically converted into static Unity Catalog ABAC Tag Rules (e.g., auto-tagging discovered sensitive columns via Unity Catalog Data Classification and applying static column masks).

Summary: The Databricks AI Governance Paradigm Shift
Adopting AI-native identity and access governance in Databricks fundamentally changes how we secure the Lakehouse, as illustrated in the comparison diagram below:

By integrating dynamic intent evaluation directly into Unity Gateway and Unity Catalog, organizations can unleash agentic workflows and LLM applications on their Databricks Data Intelligence Platform without compromising enterprise security.
메타데이터
- post_id
- 4f65eefb6207
- slug
- moving-from-static-access-controls-to-dynamic-intent-aware-ai-governance-on-databricks-4f65eefb6207
- url
- https://medium.com/@allison.baker_84541/moving-from-static-access-controls-to-dynamic-intent-aware-ai-governance-on-databricks-4f65eefb6207
- canonical_url
- https://medium.com/@allison.baker_84541/moving-from-static-access-controls-to-dynamic-intent-aware-ai-governance-on-databricks-4f65eefb6207
- author_url
- https://medium.com/@allison.baker_84541
- status
- ok
- fetched_at
- 2026-09-15 22:18:39