<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>All Data Governance posts</title>
    <link>https://community.databricks.com/t5/data-governance/bd-p/data-governance</link>
    <description>All Data Governance posts</description>
    <pubDate>Sun, 02 Aug 2026 04:51:06 GMT</pubDate>
    <dc:creator>data-governance</dc:creator>
    <dc:date>2026-08-02T04:51:06Z</dc:date>
    <item>
      <title>Re: UI sends empty managed_identity_id, breaks storage credential creation with system-assigned Acce</title>
      <link>https://community.databricks.com/t5/data-governance/ui-sends-empty-managed-identity-id-breaks-storage-credential/m-p/164580#M2940</link>
      <description>&lt;P&gt;Thanks for sharing the detailed workaround! This is incredibly helpful.&lt;/P&gt;&lt;P&gt;Your step-by-step CLI approach makes it much easier to understand how to configure the storage credential and update the metastore when the UI doesn't expose the required option. The verification steps at the end are especially useful for confirming everything is configured correctly.&lt;/P&gt;&lt;P&gt;I'm sure this will save others a lot of time if they encounter the same issue. Really appreciate you taking the time to document the complete solution!&lt;/P&gt;</description>
      <pubDate>Fri, 31 Jul 2026 04:45:35 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/ui-sends-empty-managed-identity-id-breaks-storage-credential/m-p/164580#M2940</guid>
      <dc:creator>camit001</dc:creator>
      <dc:date>2026-07-31T04:45:35Z</dc:date>
    </item>
    <item>
      <title>Re: Data contracts on Databricks: what does a working MVP actually look like?</title>
      <link>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164449#M2939</link>
      <description>&lt;P&gt;A practical MVP is to keep Bronze permissive for ingestion, but enforce contracts from Silver onward. Store the contract in Git, version it alongside pipeline code, validate it in CI using the Data Contract CLI, and publish approved changes with a simple changelog. For notifications, integrate contract diffs with Slack, Teams, or email so downstream consumers know before deployment. Ownership should ideally stay with the data product owner, with upstream teams reviewing contract changes as part of their release process.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jul 2026 06:05:29 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164449#M2939</guid>
      <dc:creator>honey_sharma</dc:creator>
      <dc:date>2026-07-30T06:05:29Z</dc:date>
    </item>
    <item>
      <title>Re: Data contracts on Databricks: what does a working MVP actually look like?</title>
      <link>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164437#M2938</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/176516"&gt;@emma_s&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/125801"&gt;@DoTA&lt;/a&gt;&amp;nbsp;Thank you for your incredibly detailed notes! I am going to sit with them for a while to internalize, and then will respond back with some ideas or questions.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jul 2026 02:48:45 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164437#M2938</guid>
      <dc:creator>binlogreader</dc:creator>
      <dc:date>2026-07-30T02:48:45Z</dc:date>
    </item>
    <item>
      <title>Re: Data contracts on Databricks: what does a working MVP actually look like?</title>
      <link>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164403#M2937</link>
      <description>&lt;P&gt;In practice, on large enterprise scale I found that applying data contracts is very tricky, and there are some major problem to it:&lt;/P&gt;&lt;P&gt;1. There are too many legacy systems, and aligning the owners of the system and the ability to alter the system alone consume too much energy (if the system even allow changes without going to a vendor and begging them for a CR which cause thousand of dollars). And, there are not only internal systems but also external systems (such as GA firebase, appsflyer as an example) which does not provide data contract OOTB.&lt;/P&gt;&lt;P&gt;2. If you manage to figure out part 1, applying data contract is not always straight forward, it really depends on the consumer. Some consumers want to stop the pipeline as soon as there is something wrong, some doesnt. Hence the general approach is to apply a pre_check (this is a task in the workflow) where you define the condition to allow the task to continue its transformation process. But it all boiled down to alignment and enterprise design, do not couple alert and stopping mechanism into a single pipeline as you will find your self aligning among different people with different risk appetite. Seperate them out of the golden layer (if you are following medallion architecture), put the hard stop in the consumption layer.&lt;/P&gt;&lt;P&gt;3. If you manage to get here, the alerting is easy, put it in the pre-check of the workflow it self. But beware, you will have thousands of alert everyday, so better to consolidate into a metadata table and send that table as a report daily.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jul 2026 13:51:44 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164403#M2937</guid>
      <dc:creator>DoTA</dc:creator>
      <dc:date>2026-07-29T13:51:44Z</dc:date>
    </item>
    <item>
      <title>Re: Enterprise Unity Catalog RBAC model in Databricks</title>
      <link>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/164402#M2936</link>
      <description>&lt;P&gt;There are 2 aspects to this, it really depends on the enterprise architecture and data governance standards that your company needs to follow.&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. On the enterprise architecture, if your company is following medallion architecture, it is not wise to transfer the ownership back to the business owner, the SPP should still how accountable for the bronze, silver and golden layer. You should only transfer back the ownership on business layer (such as data marts if you have).&lt;/P&gt;&lt;P&gt;2. On the governance side, it really depends on the company context.&lt;/P&gt;&lt;P&gt;For some company such as mine, it is require for the Data Platform to be air-gapped as no privilage data (PII) is allow to be exported from the workspace, hence we are required to use advance feature to meet these requirement:&lt;/P&gt;&lt;P&gt;1. Such as the new feature exclusive group (b4 this it is seperate workspaces for sensitive and non-sensitive data).&lt;/P&gt;&lt;P&gt;2. Consideration of using ABAC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please ensure you look on both side before finalizing, as architectural decision doesnt make or break right away, it start breaking in the long run.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jul 2026 13:41:50 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/164402#M2936</guid>
      <dc:creator>DoTA</dc:creator>
      <dc:date>2026-07-29T13:41:50Z</dc:date>
    </item>
    <item>
      <title>Re: View column comments</title>
      <link>https://community.databricks.com/t5/data-governance/view-column-comments/m-p/164313#M2935</link>
      <description>&lt;DIV&gt;&lt;P&gt;Why are COMMENT ON statements and inline COMMENT clauses not supported for non-materialized views defined in Lakeflow Declarative Pipelines?&lt;/P&gt;&lt;P&gt;Databricks SQL supports view-level and column-level comments, but the same functionality does not appear to be available when non-materialized views are managed by a declarative pipeline. Is this a current product limitation, and is support planned?&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 28 Jul 2026 18:23:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/view-column-comments/m-p/164313#M2935</guid>
      <dc:creator>Pinei</dc:creator>
      <dc:date>2026-07-28T18:23:46Z</dc:date>
    </item>
    <item>
      <title>Re: Data contracts on Databricks: what does a working MVP actually look like?</title>
      <link>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164304#M2934</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;You've hit a problem that most data teams experience, some more than others! From my personal experience I'd be very wary about going down the data contract route. Unless you can get true ownership from the application team, which I've not yet seen. Usually, I've seen that it ends up as a sticking point to ingesting new datasets and what you normally end up testing with them is whether the contract is right rather than whether the actual dataset is right. But to answer your questions.&lt;/P&gt;
&lt;P&gt;1. Usually the contract is stored as Yaml, in the data teams github repo, it could be put in a UC volume. It could work to have it in the App dev team's repo, but it if you have your data engineering patterns in a different repo this could cause issues.&lt;/P&gt;
&lt;P&gt;2. I've seen it deployed in both the CI or the runtime. Never on the catalog. I think this would be challenging as there aren't many things that can actually be enforce on the table itself.&lt;/P&gt;
&lt;P&gt;3. Usually, you would build the alerts into your CI or Pipelines and define who you would notify and this goes back to 1, who owns the contract? Do you want to be in a position where the appdev team changes something it breaks your pipeline and then you're reliant on them to fix it, which may not be a top prioirty for them.&lt;/P&gt;
&lt;P&gt;4. I'm not convinced the two things can coexist together. I think on a table, you either need data contracts or schema evolution modes. My advice is to consider the purpose of the contract. When we had to make this situation better, we actually just added the need for a data engineering reviewer on any PRs that required a schema change. A lot of this, though, will depend on the culture and nature of the organisation you work for.&lt;/P&gt;
&lt;P&gt;I hope this helps you think about it. As a side note, these are personal experiences rather than sanctioned Databricks best practices.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Many Thanks,&lt;BR /&gt;&lt;BR /&gt;Emma&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jul 2026 15:18:50 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164304#M2934</guid>
      <dc:creator>emma_s</dc:creator>
      <dc:date>2026-07-28T15:18:50Z</dc:date>
    </item>
    <item>
      <title>Re: Does user_identity in system.access.audit reflect the actual logged-in user for Service-Principa</title>
      <link>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164299#M2933</link>
      <description>&lt;P&gt;Hi, Everything&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/245078"&gt;@binlogreader&lt;/a&gt;&amp;nbsp; has commented above is correct, the app service principal will be what appears in the system tables and if you'd like to get individual user authentication you'll need to use OBO authorisation, or pull somthing from the headers, but this would be seperate to the system tables. To give some additional pointers:&lt;/P&gt;
&lt;P&gt;- The run as and run by are used for jobs and shared group compute where one identity triggers the work but it's run as another.&lt;/P&gt;
&lt;P&gt;- You will be able to extract the user from the headers.&amp;nbsp; Docs are here:&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/databricks/dev-tools/databricks-apps/http-headers" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/dev-tools/databricks-apps/http-headers&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;There are some nice examples in the docs of the usable headers.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Emma&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jul 2026 15:06:20 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164299#M2933</guid>
      <dc:creator>emma_s</dc:creator>
      <dc:date>2026-07-28T15:06:20Z</dc:date>
    </item>
    <item>
      <title>Re: Enterprise Unity Catalog RBAC model in Databricks</title>
      <link>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/164209#M2932</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Yes — this is a solid enterprise baseline.&lt;/STRONG&gt; Your pattern matches Databricks guidance to automate UC with Terraform, use service principals for automation, and keep ownership / &lt;CODE&gt;MANAGE&lt;/CODE&gt; narrowly assigned.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Single Terraform SP in a Metastore Admin group:&lt;/STRONG&gt; &lt;STRONG&gt;Yes, acceptable.&lt;/STRONG&gt; Using a service principal for IaC is recommended, and Databricks explicitly allows metastore admin to be assigned to a user, service principal, or group; &lt;STRONG&gt;group-based assignment is strongly recommended&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Would I keep that SP highly privileged forever?&lt;/STRONG&gt; &lt;STRONG&gt;Only for central platform automation.&lt;/STRONG&gt; Metastore admin is optional but highly privileged, so use it sparingly and prefer OAuth auth for the SP.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Storage credentials + external locations owned by Metastore Admin / platform group:&lt;/STRONG&gt; &lt;STRONG&gt;Yes, that’s the cleaner pattern.&lt;/STRONG&gt; These are top-level metastore objects, and Databricks recommends limiting creation/management of external locations to admins or trusted data engineers because they are broad, high-impact objects.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Catalog + schema ownership transferred to domain groups:&lt;/STRONG&gt; &lt;STRONG&gt;Yes, good practice.&lt;/STRONG&gt; Owners of catalogs and schemas can manage grants on child objects, and Databricks says catalog/schema admins should control downstream access while ownership should be assigned sparingly.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Small improvement:&lt;/STRONG&gt; transfer ownership of external locations (and ideally storage credentials) from the creator SP to a &lt;STRONG&gt;platform admin group&lt;/STRONG&gt;, not leave them implicitly on the SP.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;RBAC roles:&lt;/STRONG&gt; Your set is a &lt;STRONG&gt;good minimum&lt;/STRONG&gt;: Metastore Admin, Catalog Owner, Schema Owner, Schema Write, Schema Read.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;For larger enterprises, I’d usually &lt;STRONG&gt;add/clarify one more role&lt;/STRONG&gt;: &lt;STRONG&gt;Platform Storage Admin&lt;/STRONG&gt; for storage credentials/external locations, even if today it is the same people as Metastore Admin. That gives cleaner separation of duties as you scale.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Also remember &lt;STRONG&gt;Account Admin&lt;/STRONG&gt; and &lt;STRONG&gt;Workspace Admin&lt;/STRONG&gt; remain separate required admin layers outside your UC data roles.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Bottom line:&lt;/STRONG&gt; &lt;STRONG&gt;Yes, good design.&lt;/STRONG&gt; I would tweak: keep the single Terraform SP, but make its power come from a &lt;STRONG&gt;dedicated metastore-admin group&lt;/STRONG&gt;, and make &lt;STRONG&gt;platform groups&lt;/STRONG&gt; own storage credentials/external locations while &lt;STRONG&gt;domain groups&lt;/STRONG&gt; own catalogs/schemas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 15:43:00 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/164209#M2932</guid>
      <dc:creator>Lu_Wang_ENB_DBX</dc:creator>
      <dc:date>2026-07-27T15:43:00Z</dc:date>
    </item>
    <item>
      <title>Re: Can I connect Fabric Data Agent With Databricks Genie One as external connection</title>
      <link>https://community.databricks.com/t5/data-governance/can-i-connect-fabric-data-agent-with-databricks-genie-one-as/m-p/164208#M2931</link>
      <description>&lt;P&gt;This seems to be a duplicate question, please see my answer on the other &lt;A href="https://community.databricks.com/t5/administration-architecture/can-i-connect-fabric-data-agent-with-databricks-genie-one-as/m-p/164207/highlight/true#M5478" target="_self"&gt;thread&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 15:37:08 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/can-i-connect-fabric-data-agent-with-databricks-genie-one-as/m-p/164208#M2931</guid>
      <dc:creator>Lu_Wang_ENB_DBX</dc:creator>
      <dc:date>2026-07-27T15:37:08Z</dc:date>
    </item>
    <item>
      <title>Re: Pipeline still needs USE SCHEMA on an old schema it no longer writes to</title>
      <link>https://community.databricks.com/t5/data-governance/pipeline-still-needs-use-schema-on-an-old-schema-it-no-longer/m-p/164196#M2930</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/143415"&gt;@keshavmonga22&lt;/a&gt;&amp;nbsp;Is there anyone in your team with Admin access that can grant you temporary access or can check the event log?&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 13:04:16 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/pipeline-still-needs-use-schema-on-an-old-schema-it-no-longer/m-p/164196#M2930</guid>
      <dc:creator>binlogreader</dc:creator>
      <dc:date>2026-07-27T13:04:16Z</dc:date>
    </item>
    <item>
      <title>Can I connect Fabric Data Agent With Databricks Genie One as external connection</title>
      <link>https://community.databricks.com/t5/data-governance/can-i-connect-fabric-data-agent-with-databricks-genie-one-as/m-p/164191#M2929</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I have a fabric semantic model. I have created a fabric data agent (published) on top of the semantic model. Now i have created a unity catalog connection along with service. Is MCP connection is true. I can use this connection in AI playground or genie code to interact with the semantic model data. All is working. Region is uksouth.&lt;BR /&gt;&lt;BR /&gt;But is there any way i can use this connection as data source in genie one? I have checked the documentation but cant see this connection in the more connection list. is this because of the region&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RamenBhar_0-1785150703064.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/29479i82F0CDED939D9995/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RamenBhar_0-1785150703064.png" alt="RamenBhar_0-1785150703064.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 11:12:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/can-i-connect-fabric-data-agent-with-databricks-genie-one-as/m-p/164191#M2929</guid>
      <dc:creator>RamenBhar</dc:creator>
      <dc:date>2026-07-27T11:12:26Z</dc:date>
    </item>
    <item>
      <title>Enterprise Unity Catalog RBAC model in Databricks</title>
      <link>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/164164#M2928</link>
      <description>&lt;P&gt;I'm designing an enterprise Unity Catalog RBAC model in Databricks and would like feedback on whether this follows best practices.&lt;/P&gt;&lt;P&gt;My current design is:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;A single &lt;STRONG&gt;Service Principal&lt;/STRONG&gt; is used by &lt;STRONG&gt;Terraform&lt;/STRONG&gt; to provision all Unity Catalog objects.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The Service Principal is a member of the &lt;STRONG&gt;Metastore Admin&lt;/STRONG&gt; group.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Using Terraform, the Service Principal:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Creates the &lt;STRONG&gt;Storage Credentials&lt;/STRONG&gt; and &lt;STRONG&gt;External Locations&lt;/STRONG&gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Creates the &lt;STRONG&gt;Catalog&lt;/STRONG&gt;, then transfers ownership to the appropriate &lt;STRONG&gt;Catalog Owner&lt;/STRONG&gt; group.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Creates the &lt;STRONG&gt;Schema&lt;/STRONG&gt;, then transfers ownership to the appropriate &lt;STRONG&gt;Schema Owner&lt;/STRONG&gt; group.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The Service Principal remains the automation identity, while business ownership is transferred to the respective owner groups.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;My RBAC roles are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Metastore Admin&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Catalog Owner&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Schema Owner&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Schema Write&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Schema Read&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Is this considered a good enterprise-scale design and aligned with Databricks Unity Catalog best practices?&lt;/P&gt;&lt;P&gt;Specifically:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Is it a best practice to use a single Terraform Service Principal that belongs to the Metastore Admin group for provisioning?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Should the Metastore Admin group continue to own Storage Credentials and External Locations, while Catalog and Schema ownership is transferred to the respective owner groups?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Are these RBAC roles sufficient for a large enterprise, or would you recommend adding or changing any roles?&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Mon, 27 Jul 2026 07:57:18 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/164164#M2928</guid>
      <dc:creator>APJESK</dc:creator>
      <dc:date>2026-07-27T07:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: Does user_identity in system.access.audit reflect the actual logged-in user for Service-Principa</title>
      <link>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164161#M2927</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/245078"&gt;@binlogreader&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much for the clear and detailed explanation.&lt;BR /&gt;This clarifies the distinction between pure SP mode and OBO.&lt;/P&gt;&lt;P&gt;My understanding is that, in pure SP mode without user_api_scopes, all Databricks actions initiated by the app are audited as the service principal. Therefore, the actual logged-in user cannot be identified from system.access.audit alone. In this case, acting_resource remains NULL, and run_by / run_as should not be treated as fields that provide the end-user identity for the Databricks Apps SP-mode scenario.&lt;/P&gt;&lt;P&gt;I also understand that the app can obtain the logged-in user identity from headers such as X-Forwarded-Email and record it in application-owned logs. However, if individual user attribution is required in the platform-owned audit trail, OBO is the appropriate mechanism.&lt;/P&gt;&lt;P&gt;We will perform a controlled test with a known user action and verify the actual records in system.access.audit. Thank you again for the practical guidance.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 07:48:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164161#M2927</guid>
      <dc:creator>tetsuro</dc:creator>
      <dc:date>2026-07-27T07:48:02Z</dc:date>
    </item>
    <item>
      <title>Re: Pipeline still needs USE SCHEMA on an old schema it no longer writes to</title>
      <link>https://community.databricks.com/t5/data-governance/pipeline-still-needs-use-schema-on-an-old-schema-it-no-longer/m-p/164153#M2926</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/245078"&gt;@binlogreader&lt;/a&gt;&amp;nbsp;and &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/77492"&gt;@adnan_alvee&lt;/a&gt;&amp;nbsp;, thank you for the replies. But I don't have access to&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;system.access&amp;nbsp;&lt;/STRONG&gt;&lt;/EM&gt;either.&lt;/P&gt;&lt;P&gt;We had temporarily granted USE SCHEMA permissions on the older schema to run the pipelines.&lt;/P&gt;&lt;P&gt;Since then, I have deleted the schema entirely since it was anyways inactive now. Please note that when we had changed schemas, we had recreated the tables from scratch in the new schema.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 07:11:09 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/pipeline-still-needs-use-schema-on-an-old-schema-it-no-longer/m-p/164153#M2926</guid>
      <dc:creator>keshavmonga22</dc:creator>
      <dc:date>2026-07-27T07:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Does user_identity in system.access.audit reflect the actual logged-in user for Service-Principa</title>
      <link>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164140#M2925</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/245831"&gt;@tetsuro&lt;/a&gt;&amp;nbsp;&amp;nbsp;With app authorization only, the end user does not appear in `system.access.audit` for the calls your app makes. The sample query you found is showing on-behalf-of behavior specifically, and the query itself says, the CTE is named `obo_events`, and it filters on `identity_metadata.acting_resource IS NOT NULL`, a field that only populates when the app acts with a user's forwarded token.&lt;BR /&gt;&lt;BR /&gt;In pure SP mode, every call your app makes authenticates with the SP's client ID and secret, no user identity reaches Databricks, so the audit row shows the SP's application ID in `user_identity.email` and `acting_resource` stays null.&lt;/P&gt;&lt;P&gt;On question 2: `run_by` and `run_as` are documented for contexts where one identity triggers work that executes as another, such as jobs and dedicated group compute. Nothing in the audit log reference ties them to Databricks Apps.&lt;/P&gt;&lt;P&gt;Here are few things to try,&lt;/P&gt;&lt;P&gt;1. Have one user perform a known action in the app, then query `system.access.audit` for that window. Seeing the SP's application ID and a null `acting_resource` gives your compliance file evidence rather than a doc interpretation.&lt;BR /&gt;&lt;BR /&gt;2. Every request forwarded to your app carries the logged-in user's identity in headers (`X-Forwarded-Email`, `X-Forwarded-Preferred-Username`, per the "Access HTTP headers passed to Databricks apps" docs page), so the app can record which user drove which action.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;3. If compliance requires the user in the platform-owned audit trail itself, OBO is the mechanism built for that. Those calls then audit as the user with your app in `acting_resource`, which is exactly the rows the sample query surfaces.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 02:03:34 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164140#M2925</guid>
      <dc:creator>binlogreader</dc:creator>
      <dc:date>2026-07-27T02:03:34Z</dc:date>
    </item>
    <item>
      <title>Does user_identity in system.access.audit reflect the actual logged-in user for Service-Principal-mo</title>
      <link>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164127#M2924</link>
      <description>&lt;P&gt;We're deploying a Databricks App using Service Principal (SP) mode (not using OBO's user_api_scopes).&lt;/P&gt;&lt;P&gt;The sample query "List app actions performed on behalf of users" in Logging and Monitoring for Databricks Apps shows system.access.audit.user_identity.email commented as "Logged-in user" (the actual person who logged in), with identity_metadata.acting_resource holding the app/SP-side identifier.&lt;/P&gt;&lt;P&gt;My questions:&lt;/P&gt;&lt;P&gt;1. Does this behavior only apply when On-Behalf-Of User Authorization (OBO) is enabled? Or does a pure SP-mode app (without user_api_scopes) also populate user_identity.email with the actual end user's email whenever they interact with the app?&lt;BR /&gt;2. The Audit log system table reference documents run_by / run_as fields under identity_metadata — do these also apply to the Databricks Apps SP-mode case specifically?&lt;/P&gt;&lt;P&gt;We need to confirm, for internal compliance purposes, whether individual end users can be identified at the audit-log level, and couldn't find an explicit statement in the official docs covering this exact combination. Any pointers to documentation or real-world behavior would be appreciated.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jul 2026 00:25:19 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/does-user-identity-in-system-access-audit-reflect-the-actual/m-p/164127#M2924</guid>
      <dc:creator>tetsuro</dc:creator>
      <dc:date>2026-07-27T00:25:19Z</dc:date>
    </item>
    <item>
      <title>Data contracts on Databricks: what does a working MVP actually look like?</title>
      <link>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164095#M2923</link>
      <description>&lt;P&gt;Hi All, I'm trying to solve two related problems on our lakehouse and I keep arriving at data contracts as the answer, but I can't find much on what a first working version looks like in practice on Databricks:&lt;/P&gt;&lt;P&gt;(a) Upstream application teams change their database schemas without telling us. We ingest their tables through CDC, and schema evolution keeps the pipelines alive (new columns get added or land in the rescued data column), but that is absorption, not communication. We find out after the change is already flowing, and purely semantic changes, like a column's meaning or allowed values shifting, never trip anything at all.&lt;/P&gt;&lt;P&gt;(b) When a change reaches our silver and gold tables, consumers find out when their dashboards or queries break. Unity Catalog lineage tells them where data came from, but nothing tells them ahead of time that something is about to change.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Here is the the closest end-to-end &lt;A href="https://www.datamesh-architecture.com/howto/build-a-dataproduct-with-databricks" target="_blank"&gt;&lt;STRONG&gt;example&lt;/STRONG&gt;&lt;/A&gt; on building a data product with Databricks.&amp;nbsp; A datacontract.yaml per data product, the Data Contract CLI to generate DDL and run acceptance tests against the actual Unity Catalog table, deployment through Asset Bundles, tests running as job tasks, and metadata published to a registry so consumers can discover the product. It's a good picture, but it's a demo of one product, and it leaves my main questions open.&lt;/P&gt;&lt;P&gt;While thinking about what an MVP may look like, here are some questions that I request some guidance on:&lt;/P&gt;&lt;P&gt;1. Where does the contract live, and who owns it? For the upstream problem, the contract only helps if the application team's CI fails when their migration breaks it. Has anyone actually gotten an application team to adopt a contract for tables they consider their internal database?&lt;BR /&gt;2. Where do you enforce? Options seem to be CI (datacontract test on a schedule or on deploy), runtime (DLT expectations generated from the contract), or the catalog itself (constraints, tags). What combination is worth the effort first&lt;BR /&gt;3. How do downstream consumers actually get notified? A registry is discovery, not notification. Is anyone driving alerts or a changelog from contract diffs, and how?&lt;BR /&gt;4. Is anyone running the Data Contract CLI against Unity Catalog in production? How does it coexist with schema evolution modes that are deliberately permissive at bronze?&lt;/P&gt;&lt;P&gt;Appreciate your time!&lt;/P&gt;</description>
      <pubDate>Sat, 25 Jul 2026 20:03:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/data-contracts-on-databricks-what-does-a-working-mvp-actually/m-p/164095#M2923</guid>
      <dc:creator>binlogreader</dc:creator>
      <dc:date>2026-07-25T20:03:46Z</dc:date>
    </item>
    <item>
      <title>Re: CONNECTION Permission Issue - Can't use existing connection for Community Custom Connector</title>
      <link>https://community.databricks.com/t5/data-governance/connection-permission-issue-can-t-use-existing-connection-for/m-p/164067#M2922</link>
      <description>&lt;P&gt;Hi ChristianRRL,&lt;/P&gt;&lt;DIV class=""&gt;&lt;P&gt;Most likely a classic UI race condition or state management glitch with the UI which is common as Community Custom Connectors are in &lt;STRONG&gt;beta &lt;/STRONG&gt;and&amp;nbsp;&lt;SPAN&gt;under &lt;STRONG&gt;active development&lt;/STRONG&gt;. &lt;STRONG&gt;Interfaces&lt;/STRONG&gt; and behavior are &lt;STRONG&gt;subject to change&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;What's likely happening here is that the initial page load is failing to fetch your existing connection metadata before rendering the component. Because the UI doesn't see any existing connections in that split second, it defaults to the fallback state of prompting you to create a new one. That immediately trips the CREATE_CONNECTION permission error since your role is properly restricted to USE CONNECTION.&lt;/P&gt;&lt;P&gt;Refreshing the page forces a clean state reload, allowing the backend API call to resolve properly and populate the drop-down. Your USE CONNECTION grant is perfectly fine, the workspace UI is just getting ahead of itself on the initial load.&lt;/P&gt;&lt;P&gt;You can document the behavior for your team and file a bug &lt;A href="https://github.com/databrickslabs/lakeflow-community-connectors" target="_self"&gt;here&lt;/A&gt;.&amp;nbsp; If you are rolling this pipeline out to a production environment, keep an view on the behavior during updates as frontend caching and routing bugs like this are usually patched silently on the road to General Availability. You can try using &lt;STRONG&gt;Managed connectors&lt;/STRONG&gt; if feasible.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 24 Jul 2026 18:46:56 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/connection-permission-issue-can-t-use-existing-connection-for/m-p/164067#M2922</guid>
      <dc:creator>balajij8</dc:creator>
      <dc:date>2026-07-24T18:46:56Z</dc:date>
    </item>
    <item>
      <title>Re: CONNECTION Permission Issue - Can't use existing connection for Community Custom Connector</title>
      <link>https://community.databricks.com/t5/data-governance/connection-permission-issue-can-t-use-existing-connection-for/m-p/164046#M2921</link>
      <description>&lt;P&gt;+Additional context, following the same instructions on my ADM account. I do have the ability to "Create connection", but once again I can't find existing connections.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianRRL_0-1784903417966.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/29431iCA6A3E941775113F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ChristianRRL_0-1784903417966.png" alt="ChristianRRL_0-1784903417966.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This is odd because (A) I should be able to leverage existing connections and not need to create a new one every time, and (B) both my ADM and regular accounts have the same access as far as I can tell.&lt;/P&gt;&lt;P&gt;... Wait, this is EXTRA WEIRD (writing in real time). I see my existing connections now after refreshing the page!&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianRRL_1-1784903704977.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/29432iFF92C8986B8B19C2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ChristianRRL_1-1784903704977.png" alt="ChristianRRL_1-1784903704977.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;... Likewise, I went through the same steps on my non-ADM account. Originally, it came up just like I described originally (no existing connections came up). But after I refreshed the page, IT CAME UP!&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianRRL_2-1784903846787.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/29433iA0A0A088DD657F12/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ChristianRRL_2-1784903846787.png" alt="ChristianRRL_2-1784903846787.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Not even sure what to call this, but this seems like a genuine bug.&lt;/P&gt;</description>
      <pubDate>Fri, 24 Jul 2026 14:38:36 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/connection-permission-issue-can-t-use-existing-connection-for/m-p/164046#M2921</guid>
      <dc:creator>ChristianRRL</dc:creator>
      <dc:date>2026-07-24T14:38:36Z</dc:date>
    </item>
  </channel>
</rss>

