<?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: Service Principal in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142690#M52003</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/156441"&gt;@SP_6721&lt;/a&gt;&amp;nbsp;,do you know how and why it behaves like this ?&lt;/P&gt;</description>
    <pubDate>Tue, 30 Dec 2025 11:45:42 GMT</pubDate>
    <dc:creator>kALYAN5</dc:creator>
    <dc:date>2025-12-30T11:45:42Z</dc:date>
    <item>
      <title>Service Principal</title>
      <link>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142687#M52001</link>
      <description>&lt;P&gt;Can two service principal have same name,but unique id's ?&lt;/P&gt;</description>
      <pubDate>Tue, 30 Dec 2025 10:57:17 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142687#M52001</guid>
      <dc:creator>kALYAN5</dc:creator>
      <dc:date>2025-12-30T10:57:17Z</dc:date>
    </item>
    <item>
      <title>Re: Service Principal</title>
      <link>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142689#M52002</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/202420"&gt;@kALYAN5&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;Yes, service principals can share the same display name while still being distinguished by their unique IDs.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Dec 2025 11:30:08 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142689#M52002</guid>
      <dc:creator>SP_6721</dc:creator>
      <dc:date>2025-12-30T11:30:08Z</dc:date>
    </item>
    <item>
      <title>Re: Service Principal</title>
      <link>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142690#M52003</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/156441"&gt;@SP_6721&lt;/a&gt;&amp;nbsp;,do you know how and why it behaves like this ?&lt;/P&gt;</description>
      <pubDate>Tue, 30 Dec 2025 11:45:42 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142690#M52003</guid>
      <dc:creator>kALYAN5</dc:creator>
      <dc:date>2025-12-30T11:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Service Principal</title>
      <link>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142699#M52008</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/202420"&gt;@kALYAN5&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;2 two service principals can share the same display name, and this works because their IDs differ. The&amp;nbsp;names&amp;nbsp;are&amp;nbsp;not&amp;nbsp;used&amp;nbsp;as&amp;nbsp;primary&amp;nbsp;identifiers.&amp;nbsp;Please&amp;nbsp;find&amp;nbsp;the&amp;nbsp;document&amp;nbsp;for&amp;nbsp;the&amp;nbsp;same&amp;nbsp;:&amp;nbsp;&lt;A href="https://docs.databricks.com/aws/en/dev-tools/cli/reference/service-principals-commands#arguments-1" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/cli/reference/service-principals-commands#arguments-1&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Dec 2025 15:14:20 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142699#M52008</guid>
      <dc:creator>JAHNAVI</dc:creator>
      <dc:date>2025-12-30T15:14:20Z</dc:date>
    </item>
    <item>
      <title>Re: Service Principal</title>
      <link>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142701#M52010</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/202420"&gt;@kALYAN5&lt;/a&gt;,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an explanation of why service principals share a name but IDs are unique:&lt;/P&gt;
&lt;UL class="p8i6j07 p8i6j02"&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;Names Are for Human Readability:&lt;/STRONG&gt; Organizations use human-friendly names like "automation-batch-job" or "databricks-ci-cd" to make it easy for admins to recognize what a service principal is used for. However, names aren't forced to be unique, since they serve as labels for convenience.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;IDs Are Unique, Immutable Identifiers:&lt;/STRONG&gt; Each service principal, upon creation, is assigned a globally unique identifier (often a GUID or UUID). This ID is what systems actually use—under the hood—to distinguish and reference principals, regardless of how often names might repeat or change.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;Robust Security &amp;amp; Auditability:&lt;/STRONG&gt; All authentication, authorization, logging, and auditing relies on the unique service principal ID. This means permissions, activity logs, and system references remain precise, even if several service principals are named identically (for example, if you have both a staging and prod "etl-service-principal").&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;No Collisions, No Ambiguity:&lt;/STRONG&gt; Relying on IDs prevents confusion. If a service principal is deleted and later recreated with the same name, it gets a new ID—and thus won't inadvertently inherit the permissions or identity of the previous instance.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;P class="p8i6j01 paragraph"&gt;To illusrate the point suppose your team uses Terraform to automate the creation of service principals for Databricks workspaces. You might run:&lt;/P&gt;
&lt;DIV class="l8rrz21 _1ibi0s3cl" data-ui-element="code-block-container"&gt;
&lt;PRE&gt;&lt;CODE class="markdown-code-hcl p8i6j0e hljs language-hcl _12n1b832"&gt;resource &lt;SPAN class="hljs-string"&gt;"azuread_service_principal"&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"sp_a"&lt;/SPAN&gt; {
  application_id = azuread_application.&lt;SPAN class="hljs-built_in"&gt;this&lt;/SPAN&gt;.&lt;SPAN class="hljs-type"&gt;application_id&lt;/SPAN&gt;
  &lt;SPAN class="hljs-variable"&gt;display_name&lt;/SPAN&gt;   &lt;SPAN class="hljs-operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"databricks-automation"&lt;/SPAN&gt;
}

resource &lt;SPAN class="hljs-string"&gt;"azuread_service_principal"&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"sp_b"&lt;/SPAN&gt; {
  application_id = azuread_application.that.&lt;SPAN class="hljs-type"&gt;application_id&lt;/SPAN&gt;
  &lt;SPAN class="hljs-variable"&gt;display_name&lt;/SPAN&gt;   &lt;SPAN class="hljs-operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"databricks-automation"&lt;/SPAN&gt;
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="l8rrz23 _1ibi0s32y _1ibi0s3cm _1ibi0s3ay _1ibi0s3bo"&gt;
&lt;DIV class="l8rrz25 _1ibi0s3cj"&gt;hcl&lt;/DIV&gt;
&lt;DIV class="lqznwq0"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="p8i6j01 paragraph"&gt;Both &lt;CODE class="p8i6j0f"&gt;sp_a&lt;/CODE&gt; and &lt;CODE class="p8i6j0f"&gt;sp_b&lt;/CODE&gt; can have the display name "databricks-automation". However:&lt;/P&gt;
&lt;UL class="p8i6j07 p8i6j02"&gt;
&lt;LI class="p8i6j0a"&gt;Each will have a &lt;STRONG&gt;different application_id&lt;/STRONG&gt; (the GUID assigned by Entra ID),&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;In Databricks, when linked, each will get a &lt;STRONG&gt;distinct Databricks service principal ID&lt;/STRONG&gt; as well as the same display name,&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;All access grants, API usage, and audits in Databricks are tied to this unique ID—not the name—so there’s no ambiguity or risk to security or traceability&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="p8i6j01 paragraph"&gt;A further illustration: If an old service principal named "databricks-automation" is deleted, and a new one with the same name is created later, the new object gets a completely new ID. The system treats it as a separate entity, meaning any access or permissions would need to be explicitly reassigned&lt;/P&gt;
&lt;HR /&gt;
&lt;H3 class="_9k2iva0 p8i6j0c _1ibi0s312 heading3 _9k2iva1"&gt;Benefits of This Approach&lt;/H3&gt;
&lt;UL class="p8i6j07 p8i6j02"&gt;
&lt;LI class="p8i6j0a"&gt;You can safely reuse naming conventions and handle automation at scale.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;Permissions and history always remain linked to a unique, immutable ID.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;Security is enhanced, and accidental lock-outs or privilege escalation due to name collisions are avoided&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;P class="p8i6j01 paragraph"&gt;This pattern is standardized in platforms like Databricks and Azure AD for the balance of usability (human-friendly names) and system integrity (unique IDs). It means admins and automated tools can operate flexibly, while systems maintain reliable security and audit trails.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Dec 2025 15:25:40 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/service-principal/m-p/142701#M52010</guid>
      <dc:creator>emma_s</dc:creator>
      <dc:date>2025-12-30T15:25:40Z</dc:date>
    </item>
  </channel>
</rss>

