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

Azure SQL Server:Azure Data Factory链接服务认证失败问题求助

解决Azure Data Factory链接Azure SQL Server的AAD认证问题

我完全理解你的困扰——本地工具能用带MFA的AAD交互式认证轻松连上SQL Server,但ADF里偏偏找不到这个选项,试了其他认证方式又全失败。其实这是因为ADF的链接服务不支持需要手动介入的交互式MFA验证(比如弹窗、手机验证码那种),得换用非交互式的AAD身份方案,下面给你一步步拆解解决步骤:

核心原因先理清

Azure Data Factory的链接服务设计上就排除了需要用户实时操作的认证流程,所以你看到的可选类型都是无需人工干预的。我们要做的就是给ADF的专属身份(托管身份或服务主体)在SQL Server里配置好权限,实现无交互的认证连接。

方案1:用系统分配托管身份(最推荐,配置最省心)

这是ADF自带的身份,不用额外维护凭证,步骤如下:

  1. 启用ADF的系统分配托管身份
    打开你的Azure Data Factory资源,进入左侧菜单的托管身份,确认系统分配标签下的状态是已启用(如果没启用,点保存就能开启),记下这里的ADF资源名称(后续SQL授权要用)。
  2. 给托管身份在SQL Server里授权
    用你能正常连接的工具(比如SSMS,以AAD Admin身份登录),执行以下SQL命令:
    -- 创建对应ADF托管身份的数据库用户
    CREATE USER [你的ADF资源名称] FROM EXTERNAL PROVIDER;
    -- 授予必要权限,这里以db_owner为例,可根据实际需求调整
    ALTER ROLE db_owner ADD MEMBER [你的ADF资源名称];
    
  3. 配置ADF链接服务
    在ADF链接服务里选System Assigned Managed Identity认证类型,填好SQL Server名称和数据库名,测试连接应该就能成功了。

方案2:用服务主体(适合多环境或精细权限控制场景)

如果系统分配托管身份不符合你的需求,可以用服务主体:

  1. 创建Azure AD应用注册(服务主体)
    在Azure Portal的Azure Active Directory -> 应用注册 -> 新注册,创建一个新应用,记下客户端ID、租户ID,然后在证书和密码里创建一个客户端密码(一定要保存好,后续要用到)。
  2. 给服务主体在SQL Server里授权
    同样用AAD Admin身份登录SQL Server,执行:
    CREATE USER [你的服务主体名称] FROM EXTERNAL PROVIDER;
    ALTER ROLE db_owner ADD MEMBER [你的服务主体名称];
    
  3. 配置ADF链接服务
    选Service Principal认证类型,填入之前记录的客户端ID、租户ID,选择密钥并填入创建的客户端密码,测试连接即可。

额外必查项

  • 防火墙设置:确保Azure SQL Server的防火墙允许ADF访问。最简单的方式是在SQL Server的防火墙和虚拟网络设置中,勾选允许Azure服务和资源访问此服务器。
  • AAD管理员验证:确认你的Azure SQL Server已经正确设置了AAD管理员(你能通过AAD身份登录本地工具,这一步应该没问题,但可以在SQL Server的Active Directory管理员里再核对一遍)。

关于Server Admin密码的补充

虽然你提到不知道Server Admin的密码,但其实可以在Azure Portal的SQL Server资源设置 -> 服务器管理员里重置密码。不过既然你已经有AAD Admin权限,用上面的AAD身份认证方案会更安全合规。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:12:40