You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过托管身份实现Python免访问令牌连接Databricks

Azure托管身份连接Databricks认证方案

完全可以通过Azure托管身份实现免个人访问令牌(PAT)的身份认证,不需要手动维护固定access_token参数,适配Azure托管的Databricks服务场景。

前置要求

  • 你使用的是Azure平台托管的Databricks工作区
  • 所用托管身份(系统分配/用户分配均可)已在Databricks工作区完成权限配置,包括工作区访问权限、目标库表的操作权限

实现步骤

1. 安装依赖包

需要同时安装Databricks SQL连接器和Azure身份认证库:

pip install databricks-sql-connector azure-identity

2. 认证代码实现

场景1:使用系统分配托管身份

from databricks import sql
from azure.identity import DefaultAzureCredential

# 自动获取当前环境的系统分配托管身份令牌
credential = DefaultAzureCredential()
# Azure Databricks固定资源scope
databricks_scope = "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default"
access_token = credential.get_token(databricks_scope).token

connection = sql.connect(
  server_hostname='<你的Databricks工作区主机名>',
  http_path='<你的SQL仓库HTTP路径>',
  access_token=access_token
)

# 后续查询逻辑和原代码一致
cursor = connection.cursor()
cursor.execute('SELECT * FROM <database-name>.<table-name> LIMIT 2')
result = cursor.fetchall()
for row in result:
  print(row)
cursor.close()
connection.close()

场景2:使用用户分配托管身份

只需要在初始化DefaultAzureCredential时指定托管身份的客户端ID即可,其余逻辑不变:

credential = DefaultAzureCredential(managed_identity_client_id="<你的用户分配托管身份客户端ID>")

说明

  • 该方案本质是通过托管身份动态获取短期有效的访问令牌,不需要你手动生成、存储长期有效的个人访问令牌,安全性更高
  • 本地调试时,如果本地环境已登录Azure CLI、VS Code Azure插件,DefaultAzureCredential会自动读取本地登录的身份凭证生成令牌,无需修改代码即可完成调试

内容的提问来源于stack exchange,提问作者anthino12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:36:04