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

如何将本地ODBC用户DSN发布至Azure Data Factory?

解决Azure Data Factory中SSIS包ODBC服务主体认证连接失败问题

核心问题原因

本地创建的用户DSN仅对当前登录用户可见,而Azure Data Factory(ADF)运行SSIS包时使用的是服务账户或集成运行时(IR)的系统账户,无法读取你本地的用户DSN配置,因此出现"数据源名称未找到且未指定默认驱动"的报错。

具体解决步骤

  • 替换用户DSN为系统DSN或无DSN连接字符串

    • 系统DSN:在本地ODBC数据源管理器中选择"系统DSN"标签页创建数据源,这样机器上所有账户(包括ADF IR的服务账户)都能访问该配置。创建时选择对应版本的ODBC驱动(如ODBC Driver 17 for SQL Server),认证方式选ActiveDirectoryServicePrincipal,输入服务主体的客户端ID和密钥,测试连接通过后再发布SSIS项目。
    • 无DSN连接字符串:直接在SSIS连接管理器中使用完整的连接字符串,无需依赖DSN配置,示例格式:
      Driver={ODBC Driver 17 for SQL Server};Server=tcp:<你的SQL服务器名>.database.windows.net,1433;Database=<目标数据库名>;Authentication=ActiveDirectoryServicePrincipal;UID=<服务主体客户端ID>;PWD=<服务主体密钥>
      
  • 匹配集成运行时的ODBC驱动版本

    • 若使用自托管IR:需在IR所在的机器上安装与本地一致版本的ODBC驱动,确保驱动已正确注册到系统中。
    • 若使用托管IR:确认托管IR支持的ODBC驱动版本(当前托管IR默认支持ODBC Driver 17 for SQL Server),连接配置需适配该版本。
  • 发布时验证连接配置
    发布SSIS项目到ADF的SSIS目录时,检查连接管理器的配置是否已更新为系统DSN或无DSN字符串,避免保留本地用户DSN的引用。

  • 自托管IR额外排查项

    • 确保IR的服务账户拥有访问系统DSN的权限,且IR所在机器能正常连通Azure SQL Server的1433端口。可在IR机器上通过ODBC数据源管理器再次测试系统DSN的连接,确认服务主体能正常访问目标数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:55:29