<?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: How do i connect azure storage accounts with User Managed Identity given access to Databricks in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/how-do-i-connect-azure-storage-accounts-with-user-managed/m-p/150134#M53262</link>
    <description>&lt;P&gt;Hi &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/210036"&gt;@ajay_wavicle&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Good timing on this question. Connecting Azure storage accounts to Databricks using a User-Assigned Managed Identity is a great approach -- it avoids the need to manage secrets and supports storage firewall configurations. Here is a complete walkthrough covering the Azure Portal setup and the Databricks side.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;OVERVIEW&lt;/P&gt;
&lt;P&gt;In Azure Databricks (with Unity Catalog), you connect to Azure Data Lake Storage Gen2 through three key objects:&lt;/P&gt;
&lt;P&gt;1. Access Connector for Azure Databricks -- an Azure resource that holds a managed identity&lt;BR /&gt;2. Storage Credential -- a Unity Catalog object that references the access connector&lt;BR /&gt;3. External Location -- a Unity Catalog object that maps a storage path (abfss://) to a storage credential&lt;/P&gt;
&lt;P&gt;You can use either a system-assigned or user-assigned managed identity. Since you want a user-assigned managed identity, that gives you more control because you create and manage it independently, and you can reuse the same identity across multiple access connectors.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;PREREQUISITES&lt;/P&gt;
&lt;P&gt;- An Azure Data Lake Storage Gen2 account (must have hierarchical namespace enabled)&lt;BR /&gt;- Contributor or Owner role on an Azure resource group (to create the access connector)&lt;BR /&gt;- Owner or User Access Administrator role on the storage account (to assign IAM roles)&lt;BR /&gt;- A Databricks workspace enabled for Unity Catalog&lt;BR /&gt;- CREATE STORAGE CREDENTIAL privilege on your Unity Catalog metastore (account admins and metastore admins have this by default)&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 1: CREATE A USER-ASSIGNED MANAGED IDENTITY IN AZURE&lt;/P&gt;
&lt;P&gt;If you do not already have one:&lt;/P&gt;
&lt;P&gt;1. In the Azure Portal, search for "Managed Identities" and click Create.&lt;BR /&gt;2. Select your subscription, resource group, and region. The region should match your storage account region for best performance.&lt;BR /&gt;3. Give it a meaningful name (e.g., "databricks-storage-identity").&lt;BR /&gt;4. Click Review + Create, then Create.&lt;BR /&gt;5. Once created, go to the resource and copy the Resource ID. It will look like:&lt;/P&gt;
&lt;P&gt;/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 2: CREATE AN ACCESS CONNECTOR FOR AZURE DATABRICKS&lt;/P&gt;
&lt;P&gt;The Access Connector is a first-party Azure resource that lets you connect managed identities to an Azure Databricks account.&lt;/P&gt;
&lt;P&gt;1. In the Azure Portal, click "+ Create a resource".&lt;BR /&gt;2. Search for "Access Connector for Azure Databricks" and select it.&lt;BR /&gt;3. Click Create.&lt;BR /&gt;4. Fill in the Basics tab:&lt;BR /&gt;- Subscription: your Azure subscription&lt;BR /&gt;- Resource Group: select an appropriate resource group&lt;BR /&gt;- Name: a descriptive name (e.g., "my-databricks-access-connector")&lt;BR /&gt;- Region: same region as your storage account&lt;BR /&gt;5. Click Next to the Managed Identity tab.&lt;BR /&gt;6. Under User-assigned managed identity, click "+ Add" and select the managed identity you created in Step 1.&lt;BR /&gt;7. Click Review + Create, then Create.&lt;BR /&gt;8. Once deployed, go to the resource and copy the Resource ID. It will look like:&lt;/P&gt;
&lt;P&gt;/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 3: GRANT THE MANAGED IDENTITY ACCESS TO YOUR STORAGE ACCOUNT&lt;/P&gt;
&lt;P&gt;1. In the Azure Portal, navigate to your Azure Data Lake Storage Gen2 account.&lt;BR /&gt;2. Go to Access Control (IAM) and click "+ Add" then "Add role assignment".&lt;BR /&gt;3. Select the "Storage Blob Data Contributor" role (this grants read and write access). Click Next.&lt;BR /&gt;4. Under "Assign access to", select "Managed identity".&lt;BR /&gt;5. Click "+ Select members".&lt;BR /&gt;6. In the managed identity dropdown, select "User-assigned managed identity".&lt;BR /&gt;7. Search for and select your managed identity from Step 1.&lt;BR /&gt;8. Click Select, then Review + Assign.&lt;/P&gt;
&lt;P&gt;Note: If you only need read access, you can use "Storage Blob Data Reader" instead. For finer-grained control, you can assign "Storage Blob Delegator" at the storage account level and "Storage Blob Data Contributor" at a specific container level.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 4: CREATE A STORAGE CREDENTIAL IN DATABRICKS&lt;/P&gt;
&lt;P&gt;Option A -- Using the Databricks UI (Catalog Explorer):&lt;/P&gt;
&lt;P&gt;1. Log into your Databricks workspace.&lt;BR /&gt;2. Click the "Catalog" icon in the sidebar.&lt;BR /&gt;3. Click "External data" then go to the "Credentials" tab.&lt;BR /&gt;4. Click "Create credential" and select "Storage credential".&lt;BR /&gt;5. Set Credential Type to "Azure Managed Identity".&lt;BR /&gt;6. Enter a name for your credential.&lt;BR /&gt;7. In the Access Connector ID field, paste the access connector resource ID from Step 2.&lt;BR /&gt;8. In the "User-assigned managed identity ID" field, paste the managed identity resource ID from Step 1.&lt;BR /&gt;9. Click Create.&lt;/P&gt;
&lt;P&gt;Option B -- Using SQL in a notebook:&lt;/P&gt;
&lt;P&gt;CREATE STORAGE CREDENTIAL my_storage_cred&lt;BR /&gt;WITH (&lt;BR /&gt;AZURE_MANAGED_IDENTITY (&lt;BR /&gt;ACCESS_CONNECTOR_ID = '/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;',&lt;BR /&gt;MANAGED_IDENTITY_ID = '/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;'&lt;BR /&gt;)&lt;BR /&gt;);&lt;/P&gt;
&lt;P&gt;Option C -- Using the Databricks CLI:&lt;/P&gt;
&lt;P&gt;databricks storage-credentials create --json '{&lt;BR /&gt;"name": "my_storage_cred",&lt;BR /&gt;"azure_managed_identity": {&lt;BR /&gt;"access_connector_id": "/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;",&lt;BR /&gt;"managed_identity_id": "/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;"&lt;BR /&gt;}&lt;BR /&gt;}'&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 5: CREATE AN EXTERNAL LOCATION&lt;/P&gt;
&lt;P&gt;An external location maps a specific storage path to your storage credential so Unity Catalog can govern access.&lt;/P&gt;
&lt;P&gt;Option A -- Using the UI:&lt;/P&gt;
&lt;P&gt;1. In Catalog Explorer, click "External data" then the "External Locations" tab.&lt;BR /&gt;2. Click "Create location".&lt;BR /&gt;3. Set Storage type to "Azure Data Lake Storage".&lt;BR /&gt;4. In the URL field, enter your container path in abfss format:&lt;BR /&gt;abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;optional-path&amp;gt;&lt;BR /&gt;5. Select the storage credential you created in Step 4.&lt;BR /&gt;6. Click Create.&lt;/P&gt;
&lt;P&gt;Option B -- Using SQL:&lt;/P&gt;
&lt;P&gt;CREATE EXTERNAL LOCATION my_ext_location&lt;BR /&gt;URL 'abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;path&amp;gt;'&lt;BR /&gt;WITH (STORAGE CREDENTIAL my_storage_cred);&lt;/P&gt;
&lt;P&gt;After creating the external location, grant appropriate permissions to users:&lt;/P&gt;
&lt;P&gt;GRANT READ FILES, WRITE FILES ON EXTERNAL LOCATION my_ext_location TO `user_or_group`;&lt;/P&gt;
&lt;P&gt;-- Or, to allow creating external tables:&lt;BR /&gt;GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION my_ext_location TO `user_or_group`;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 6: VALIDATE YOUR SETUP&lt;/P&gt;
&lt;P&gt;You can validate access by listing files:&lt;/P&gt;
&lt;P&gt;LIST 'abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;path&amp;gt;';&lt;/P&gt;
&lt;P&gt;Or by reading a file:&lt;/P&gt;
&lt;P&gt;SELECT * FROM read_files('abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;path&amp;gt;/myfile.csv');&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;REGARDING AZURE CLI&lt;/P&gt;
&lt;P&gt;You mentioned wanting to use Azure CLI. The Azure CLI is useful for the Azure-side setup (Steps 1-3). Here are the key commands:&lt;/P&gt;
&lt;P&gt;Create the user-assigned managed identity:&lt;/P&gt;
&lt;P&gt;az identity create \&lt;BR /&gt;--name databricks-storage-identity \&lt;BR /&gt;--resource-group &amp;lt;resource-group&amp;gt; \&lt;BR /&gt;--location &amp;lt;region&amp;gt;&lt;/P&gt;
&lt;P&gt;Create the access connector with user-assigned identity:&lt;/P&gt;
&lt;P&gt;az databricks access-connector create \&lt;BR /&gt;--name my-databricks-access-connector \&lt;BR /&gt;--resource-group &amp;lt;resource-group&amp;gt; \&lt;BR /&gt;--location &amp;lt;region&amp;gt; \&lt;BR /&gt;--identity-type UserAssigned \&lt;BR /&gt;--user-assigned-identities '{"/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;": {}}'&lt;/P&gt;
&lt;P&gt;Assign the Storage Blob Data Contributor role:&lt;/P&gt;
&lt;P&gt;az role assignment create \&lt;BR /&gt;--assignee-object-id $(az identity show --name &amp;lt;identity-name&amp;gt; --resource-group &amp;lt;rg&amp;gt; --query principalId -o tsv) \&lt;BR /&gt;--assignee-principal-type ServicePrincipal \&lt;BR /&gt;--role "Storage Blob Data Contributor" \&lt;BR /&gt;--scope /subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.Storage/storageAccounts/&amp;lt;storage-account-name&amp;gt;&lt;/P&gt;
&lt;P&gt;For the Databricks side (Steps 4-6), you can use the Databricks CLI as shown above, or the SQL commands from a notebook.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;IMPORTANT NOTES&lt;/P&gt;
&lt;P&gt;- Your Azure Data Lake Storage Gen2 account MUST have hierarchical namespace enabled. Standard Blob Storage accounts will not work with Unity Catalog.&lt;BR /&gt;- For best performance, keep the access connector, managed identity, storage account, and Databricks workspace in the same Azure region.&lt;BR /&gt;- Managed identities are strongly recommended over service principals because they do not require secret rotation, and they support storage firewall configurations (network-restricted storage accounts).&lt;BR /&gt;- If your storage account has a firewall enabled, you can configure trusted access by adding the access connector as a resource instance under your storage account's Networking settings. This is a major advantage of managed identity over service principal.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;DOCUMENTATION REFERENCES&lt;/P&gt;
&lt;P&gt;- Azure managed identities in Unity Catalog: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/azure-managed-identities" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/azure-managed-identities&lt;/A&gt;&lt;BR /&gt;- Create a storage credential: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/storage-credentials" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/storage-credentials&lt;/A&gt;&lt;BR /&gt;- Create an external location: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/external-locations" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/external-locations&lt;/A&gt;&lt;BR /&gt;- Connect to cloud storage using Unity Catalog: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Hope this helps get you connected! Let me know if you run into any issues with a specific step.&lt;/P&gt;
&lt;P&gt;* This reply used an agent system I built to research and draft this response based on the wide set of documentation I have available and previous memory. I personally review the draft for any obvious issues and for monitoring system reliability and update it when I detect any drift, but there is still a small chance that something is inaccurate, especially if you are experimenting with brand new features.&lt;/P&gt;</description>
    <pubDate>Sun, 08 Mar 2026 04:42:59 GMT</pubDate>
    <dc:creator>SteveOstrowski</dc:creator>
    <dc:date>2026-03-08T04:42:59Z</dc:date>
    <item>
      <title>How do i connect azure storage accounts with User Managed Identity given access to Databricks</title>
      <link>https://community.databricks.com/t5/data-engineering/how-do-i-connect-azure-storage-accounts-with-user-managed/m-p/148615#M52932</link>
      <description>&lt;P&gt;I want to connect azure storage accounts with User Managed Identity given access to Databricks. I want to use azure cli and connect to storage accounts independently&lt;/P&gt;</description>
      <pubDate>Tue, 17 Feb 2026 15:06:43 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-do-i-connect-azure-storage-accounts-with-user-managed/m-p/148615#M52932</guid>
      <dc:creator>ajay_wavicle</dc:creator>
      <dc:date>2026-02-17T15:06:43Z</dc:date>
    </item>
    <item>
      <title>Re: How do i connect azure storage accounts with User Managed Identity given access to Databricks</title>
      <link>https://community.databricks.com/t5/data-engineering/how-do-i-connect-azure-storage-accounts-with-user-managed/m-p/150134#M53262</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/210036"&gt;@ajay_wavicle&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Good timing on this question. Connecting Azure storage accounts to Databricks using a User-Assigned Managed Identity is a great approach -- it avoids the need to manage secrets and supports storage firewall configurations. Here is a complete walkthrough covering the Azure Portal setup and the Databricks side.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;OVERVIEW&lt;/P&gt;
&lt;P&gt;In Azure Databricks (with Unity Catalog), you connect to Azure Data Lake Storage Gen2 through three key objects:&lt;/P&gt;
&lt;P&gt;1. Access Connector for Azure Databricks -- an Azure resource that holds a managed identity&lt;BR /&gt;2. Storage Credential -- a Unity Catalog object that references the access connector&lt;BR /&gt;3. External Location -- a Unity Catalog object that maps a storage path (abfss://) to a storage credential&lt;/P&gt;
&lt;P&gt;You can use either a system-assigned or user-assigned managed identity. Since you want a user-assigned managed identity, that gives you more control because you create and manage it independently, and you can reuse the same identity across multiple access connectors.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;PREREQUISITES&lt;/P&gt;
&lt;P&gt;- An Azure Data Lake Storage Gen2 account (must have hierarchical namespace enabled)&lt;BR /&gt;- Contributor or Owner role on an Azure resource group (to create the access connector)&lt;BR /&gt;- Owner or User Access Administrator role on the storage account (to assign IAM roles)&lt;BR /&gt;- A Databricks workspace enabled for Unity Catalog&lt;BR /&gt;- CREATE STORAGE CREDENTIAL privilege on your Unity Catalog metastore (account admins and metastore admins have this by default)&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 1: CREATE A USER-ASSIGNED MANAGED IDENTITY IN AZURE&lt;/P&gt;
&lt;P&gt;If you do not already have one:&lt;/P&gt;
&lt;P&gt;1. In the Azure Portal, search for "Managed Identities" and click Create.&lt;BR /&gt;2. Select your subscription, resource group, and region. The region should match your storage account region for best performance.&lt;BR /&gt;3. Give it a meaningful name (e.g., "databricks-storage-identity").&lt;BR /&gt;4. Click Review + Create, then Create.&lt;BR /&gt;5. Once created, go to the resource and copy the Resource ID. It will look like:&lt;/P&gt;
&lt;P&gt;/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 2: CREATE AN ACCESS CONNECTOR FOR AZURE DATABRICKS&lt;/P&gt;
&lt;P&gt;The Access Connector is a first-party Azure resource that lets you connect managed identities to an Azure Databricks account.&lt;/P&gt;
&lt;P&gt;1. In the Azure Portal, click "+ Create a resource".&lt;BR /&gt;2. Search for "Access Connector for Azure Databricks" and select it.&lt;BR /&gt;3. Click Create.&lt;BR /&gt;4. Fill in the Basics tab:&lt;BR /&gt;- Subscription: your Azure subscription&lt;BR /&gt;- Resource Group: select an appropriate resource group&lt;BR /&gt;- Name: a descriptive name (e.g., "my-databricks-access-connector")&lt;BR /&gt;- Region: same region as your storage account&lt;BR /&gt;5. Click Next to the Managed Identity tab.&lt;BR /&gt;6. Under User-assigned managed identity, click "+ Add" and select the managed identity you created in Step 1.&lt;BR /&gt;7. Click Review + Create, then Create.&lt;BR /&gt;8. Once deployed, go to the resource and copy the Resource ID. It will look like:&lt;/P&gt;
&lt;P&gt;/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 3: GRANT THE MANAGED IDENTITY ACCESS TO YOUR STORAGE ACCOUNT&lt;/P&gt;
&lt;P&gt;1. In the Azure Portal, navigate to your Azure Data Lake Storage Gen2 account.&lt;BR /&gt;2. Go to Access Control (IAM) and click "+ Add" then "Add role assignment".&lt;BR /&gt;3. Select the "Storage Blob Data Contributor" role (this grants read and write access). Click Next.&lt;BR /&gt;4. Under "Assign access to", select "Managed identity".&lt;BR /&gt;5. Click "+ Select members".&lt;BR /&gt;6. In the managed identity dropdown, select "User-assigned managed identity".&lt;BR /&gt;7. Search for and select your managed identity from Step 1.&lt;BR /&gt;8. Click Select, then Review + Assign.&lt;/P&gt;
&lt;P&gt;Note: If you only need read access, you can use "Storage Blob Data Reader" instead. For finer-grained control, you can assign "Storage Blob Delegator" at the storage account level and "Storage Blob Data Contributor" at a specific container level.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 4: CREATE A STORAGE CREDENTIAL IN DATABRICKS&lt;/P&gt;
&lt;P&gt;Option A -- Using the Databricks UI (Catalog Explorer):&lt;/P&gt;
&lt;P&gt;1. Log into your Databricks workspace.&lt;BR /&gt;2. Click the "Catalog" icon in the sidebar.&lt;BR /&gt;3. Click "External data" then go to the "Credentials" tab.&lt;BR /&gt;4. Click "Create credential" and select "Storage credential".&lt;BR /&gt;5. Set Credential Type to "Azure Managed Identity".&lt;BR /&gt;6. Enter a name for your credential.&lt;BR /&gt;7. In the Access Connector ID field, paste the access connector resource ID from Step 2.&lt;BR /&gt;8. In the "User-assigned managed identity ID" field, paste the managed identity resource ID from Step 1.&lt;BR /&gt;9. Click Create.&lt;/P&gt;
&lt;P&gt;Option B -- Using SQL in a notebook:&lt;/P&gt;
&lt;P&gt;CREATE STORAGE CREDENTIAL my_storage_cred&lt;BR /&gt;WITH (&lt;BR /&gt;AZURE_MANAGED_IDENTITY (&lt;BR /&gt;ACCESS_CONNECTOR_ID = '/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;',&lt;BR /&gt;MANAGED_IDENTITY_ID = '/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;resource-group&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;'&lt;BR /&gt;)&lt;BR /&gt;);&lt;/P&gt;
&lt;P&gt;Option C -- Using the Databricks CLI:&lt;/P&gt;
&lt;P&gt;databricks storage-credentials create --json '{&lt;BR /&gt;"name": "my_storage_cred",&lt;BR /&gt;"azure_managed_identity": {&lt;BR /&gt;"access_connector_id": "/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;",&lt;BR /&gt;"managed_identity_id": "/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;"&lt;BR /&gt;}&lt;BR /&gt;}'&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 5: CREATE AN EXTERNAL LOCATION&lt;/P&gt;
&lt;P&gt;An external location maps a specific storage path to your storage credential so Unity Catalog can govern access.&lt;/P&gt;
&lt;P&gt;Option A -- Using the UI:&lt;/P&gt;
&lt;P&gt;1. In Catalog Explorer, click "External data" then the "External Locations" tab.&lt;BR /&gt;2. Click "Create location".&lt;BR /&gt;3. Set Storage type to "Azure Data Lake Storage".&lt;BR /&gt;4. In the URL field, enter your container path in abfss format:&lt;BR /&gt;abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;optional-path&amp;gt;&lt;BR /&gt;5. Select the storage credential you created in Step 4.&lt;BR /&gt;6. Click Create.&lt;/P&gt;
&lt;P&gt;Option B -- Using SQL:&lt;/P&gt;
&lt;P&gt;CREATE EXTERNAL LOCATION my_ext_location&lt;BR /&gt;URL 'abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;path&amp;gt;'&lt;BR /&gt;WITH (STORAGE CREDENTIAL my_storage_cred);&lt;/P&gt;
&lt;P&gt;After creating the external location, grant appropriate permissions to users:&lt;/P&gt;
&lt;P&gt;GRANT READ FILES, WRITE FILES ON EXTERNAL LOCATION my_ext_location TO `user_or_group`;&lt;/P&gt;
&lt;P&gt;-- Or, to allow creating external tables:&lt;BR /&gt;GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION my_ext_location TO `user_or_group`;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;STEP 6: VALIDATE YOUR SETUP&lt;/P&gt;
&lt;P&gt;You can validate access by listing files:&lt;/P&gt;
&lt;P&gt;LIST 'abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;path&amp;gt;';&lt;/P&gt;
&lt;P&gt;Or by reading a file:&lt;/P&gt;
&lt;P&gt;SELECT * FROM read_files('abfss://&amp;lt;container-name&amp;gt;@&amp;lt;storage-account-name&amp;gt;.dfs.core.windows.net/&amp;lt;path&amp;gt;/myfile.csv');&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;REGARDING AZURE CLI&lt;/P&gt;
&lt;P&gt;You mentioned wanting to use Azure CLI. The Azure CLI is useful for the Azure-side setup (Steps 1-3). Here are the key commands:&lt;/P&gt;
&lt;P&gt;Create the user-assigned managed identity:&lt;/P&gt;
&lt;P&gt;az identity create \&lt;BR /&gt;--name databricks-storage-identity \&lt;BR /&gt;--resource-group &amp;lt;resource-group&amp;gt; \&lt;BR /&gt;--location &amp;lt;region&amp;gt;&lt;/P&gt;
&lt;P&gt;Create the access connector with user-assigned identity:&lt;/P&gt;
&lt;P&gt;az databricks access-connector create \&lt;BR /&gt;--name my-databricks-access-connector \&lt;BR /&gt;--resource-group &amp;lt;resource-group&amp;gt; \&lt;BR /&gt;--location &amp;lt;region&amp;gt; \&lt;BR /&gt;--identity-type UserAssigned \&lt;BR /&gt;--user-assigned-identities '{"/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.ManagedIdentity/userAssignedIdentities/&amp;lt;identity-name&amp;gt;": {}}'&lt;/P&gt;
&lt;P&gt;Assign the Storage Blob Data Contributor role:&lt;/P&gt;
&lt;P&gt;az role assignment create \&lt;BR /&gt;--assignee-object-id $(az identity show --name &amp;lt;identity-name&amp;gt; --resource-group &amp;lt;rg&amp;gt; --query principalId -o tsv) \&lt;BR /&gt;--assignee-principal-type ServicePrincipal \&lt;BR /&gt;--role "Storage Blob Data Contributor" \&lt;BR /&gt;--scope /subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.Storage/storageAccounts/&amp;lt;storage-account-name&amp;gt;&lt;/P&gt;
&lt;P&gt;For the Databricks side (Steps 4-6), you can use the Databricks CLI as shown above, or the SQL commands from a notebook.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;IMPORTANT NOTES&lt;/P&gt;
&lt;P&gt;- Your Azure Data Lake Storage Gen2 account MUST have hierarchical namespace enabled. Standard Blob Storage accounts will not work with Unity Catalog.&lt;BR /&gt;- For best performance, keep the access connector, managed identity, storage account, and Databricks workspace in the same Azure region.&lt;BR /&gt;- Managed identities are strongly recommended over service principals because they do not require secret rotation, and they support storage firewall configurations (network-restricted storage accounts).&lt;BR /&gt;- If your storage account has a firewall enabled, you can configure trusted access by adding the access connector as a resource instance under your storage account's Networking settings. This is a major advantage of managed identity over service principal.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;DOCUMENTATION REFERENCES&lt;/P&gt;
&lt;P&gt;- Azure managed identities in Unity Catalog: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/azure-managed-identities" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/azure-managed-identities&lt;/A&gt;&lt;BR /&gt;- Create a storage credential: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/storage-credentials" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/storage-credentials&lt;/A&gt;&lt;BR /&gt;- Create an external location: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/external-locations" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/external-locations&lt;/A&gt;&lt;BR /&gt;- Connect to cloud storage using Unity Catalog: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Hope this helps get you connected! Let me know if you run into any issues with a specific step.&lt;/P&gt;
&lt;P&gt;* This reply used an agent system I built to research and draft this response based on the wide set of documentation I have available and previous memory. I personally review the draft for any obvious issues and for monitoring system reliability and update it when I detect any drift, but there is still a small chance that something is inaccurate, especially if you are experimenting with brand new features.&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2026 04:42:59 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-do-i-connect-azure-storage-accounts-with-user-managed/m-p/150134#M53262</guid>
      <dc:creator>SteveOstrowski</dc:creator>
      <dc:date>2026-03-08T04:42:59Z</dc:date>
    </item>
  </channel>
</rss>

