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

Azure Databricks应用通过服务主体连接SQL Warehouse异常排查

问题原因与解决方法

核心问题

你使用oauth_service_principal作为凭证提供者时,代码触发了需要用户交互的授权码流,而非预期的机器对机器(M2M)客户端凭证流,本质是参数配置不完整或错误,导致连接器未正确识别服务主体的M2M模式。

具体解决步骤

1. 补全代码必填参数

服务主体M2M流需要同时指定token_endpoint参数,缺少该参数会导致连接器 fallback 到需要用户交互的授权码流。

错误示例(缺少token_endpoint):

from databricks.sql import connect

conn = connect(
    server_hostname='<你的Databricks工作区域名>',
    http_path='<SQL Warehouse的HTTP路径>',
    auth_type='oauth_service_principal',
    client_id='<服务主体ID>',
    client_secret='<服务主体密钥>'
)

正确示例(补充Azure AD令牌端点):

from databricks.sql import connect

conn = connect(
    server_hostname='<你的Databricks工作区域名>',
    http_path='<SQL Warehouse的HTTP路径>',
    auth_type='oauth_service_principal',
    client_id='<服务主体ID>',
    client_secret='<服务主体密钥>',
    token_endpoint='https://login.microsoftonline.com/<你的Azure租户ID>/oauth2/v2.0/token'
)

2. 验证服务主体配置

除了SQL Warehouse的“Can use”权限,还需确认:

  • 服务主体已被添加到Databricks工作区,并分配了基础工作区权限(如“用户”角色)
  • 服务主体的密钥未过期、未被吊销

3. 升级连接器版本

旧版本的databricks-sql-connector可能对服务主体M2M流支持不完善,执行以下命令升级:

pip install --upgrade databricks-sql-connector

为什么PAT能正常工作?

PAT是直接的身份凭证,无需经过OAuth流程验证,连接器可直接用它完成身份校验,因此不会触发需要用户交互的授权流程。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:42:03