<?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>topic Re: Enterprise Unity Catalog RBAC model in Databricks in Data Governance</title>
    <link>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/165118#M2948</link>
    <description>&lt;P&gt;I agree with Lu, this is a solid enterprise baseline and the two replies above cover the design mechanics well. One thing worth adding from running this pattern at scale is the evidence layer: a single Terraform SP with ownership transfer is clean to configure, but it only becomes an &lt;I&gt;enterprise&lt;/I&gt; design when you can prove it held at any point in time. Three practical additions:&lt;BR /&gt;&lt;BR /&gt;1. Lean into the audit trail the single-SP pattern gives you.&lt;BR /&gt;Because one service principal provisions everything, every create/transfer/revoke is attributable to a single identity, that's a strength most designs don't have. Build your evidence queries early from the system tables: system.access.audit with service_name matching your automation, filtered on action_name for ownership changes and grant/revoke events. Standardize them before an auditor asks, not after. Start here:&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/" target="_blank"&gt;https://docs.databricks.com/aws/en/admin/system-tables/&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/audit-logs" target="_blank"&gt;https://docs.databricks.com/aws/en/admin/system-tables/audit-logs&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;2. Map each RBAC role to a control and an evidence query.&lt;BR /&gt;For SOC 2 / ISO 27001, auditors don't audit role names, they audit the control: who can invoke what, on which securable, with proof it was enforced. Your role set (Metastore Admin, Catalog Owner, Schema Owner, Schema Write, Schema Read) maps cleanly to that if you keep a mapping doc: role to grant to securable to the system-table query that proves it. The ownership-transfer pattern makes this easy because ownership is visible in the catalog, not buried in grants:&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/privileges" target="_blank"&gt;https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/privileges&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/#grant" target="_blank"&gt;https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/#grant&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;3. Watch drift, especially the Terraform SP's standing power.&lt;BR /&gt;Your Terraform SP stays in the Metastore Admin group forever. That's a deliberate, defensible choice, but it's also a permanent escalation path, so it needs a review cadence like any other standing privilege, confirm its credentials rotate (OAuth, not personal tokens) and document who can assume it. Separately, ownership transfers and temporary grants accumulate silently: a monthly diff of "who actually owns catalogs/schemas vs. who should" catches exceptions before they become audit findings. Ownership semantics are worth knowing precisely here:&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/ownership" target="_blank"&gt;https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/ownership&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;The design is right. The gap most enterprises hit is proving it, the query set, the control mapping, and the drift review are what turn a good RBAC model into an auditable one.&lt;/P&gt;</description>
    <pubDate>Sat, 08 Aug 2026 01:45:33 GMT</pubDate>
    <dc:creator>empire_labs</dc:creator>
    <dc:date>2026-08-08T01:45:33Z</dc:date>
    <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: 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: 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: 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/165118#M2948</link>
      <description>&lt;P&gt;I agree with Lu, this is a solid enterprise baseline and the two replies above cover the design mechanics well. One thing worth adding from running this pattern at scale is the evidence layer: a single Terraform SP with ownership transfer is clean to configure, but it only becomes an &lt;I&gt;enterprise&lt;/I&gt; design when you can prove it held at any point in time. Three practical additions:&lt;BR /&gt;&lt;BR /&gt;1. Lean into the audit trail the single-SP pattern gives you.&lt;BR /&gt;Because one service principal provisions everything, every create/transfer/revoke is attributable to a single identity, that's a strength most designs don't have. Build your evidence queries early from the system tables: system.access.audit with service_name matching your automation, filtered on action_name for ownership changes and grant/revoke events. Standardize them before an auditor asks, not after. Start here:&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/" target="_blank"&gt;https://docs.databricks.com/aws/en/admin/system-tables/&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/audit-logs" target="_blank"&gt;https://docs.databricks.com/aws/en/admin/system-tables/audit-logs&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;2. Map each RBAC role to a control and an evidence query.&lt;BR /&gt;For SOC 2 / ISO 27001, auditors don't audit role names, they audit the control: who can invoke what, on which securable, with proof it was enforced. Your role set (Metastore Admin, Catalog Owner, Schema Owner, Schema Write, Schema Read) maps cleanly to that if you keep a mapping doc: role to grant to securable to the system-table query that proves it. The ownership-transfer pattern makes this easy because ownership is visible in the catalog, not buried in grants:&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/privileges" target="_blank"&gt;https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/privileges&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/#grant" target="_blank"&gt;https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/#grant&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;3. Watch drift, especially the Terraform SP's standing power.&lt;BR /&gt;Your Terraform SP stays in the Metastore Admin group forever. That's a deliberate, defensible choice, but it's also a permanent escalation path, so it needs a review cadence like any other standing privilege, confirm its credentials rotate (OAuth, not personal tokens) and document who can assume it. Separately, ownership transfers and temporary grants accumulate silently: a monthly diff of "who actually owns catalogs/schemas vs. who should" catches exceptions before they become audit findings. Ownership semantics are worth knowing precisely here:&lt;BR /&gt;&lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/ownership" target="_blank"&gt;https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/ownership&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;The design is right. The gap most enterprises hit is proving it, the query set, the control mapping, and the drift review are what turn a good RBAC model into an auditable one.&lt;/P&gt;</description>
      <pubDate>Sat, 08 Aug 2026 01:45:33 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/enterprise-unity-catalog-rbac-model-in-databricks/m-p/165118#M2948</guid>
      <dc:creator>empire_labs</dc:creator>
      <dc:date>2026-08-08T01:45:33Z</dc:date>
    </item>
  </channel>
</rss>

