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

ETL包在开发环境正常,部署至生产环境后执行失败求助

SSIS ETL包生产环境连接Azure SQL失败排查思路

问题概述

本地部署的SQL Server 2017 CU25运行SSIS ETL包,目标为Azure SQL Server数据库。开发环境测试正常,但部署到生产环境后执行失败,核心报错如下:

Error: 2023-01-06 08:10:53.83     Code: 0xC0208452     Source: ETL Destino ADO NET [8]     
Description: ADO NET Destination has failed to acquire the connection with the following error message: "One or more errors occurred.".  End Error  

Error: 2023-01-06 08:10:53.83     Code: 0xC0047017     Source: ETL SSIS.Pipeline     Description: Destino de ADO NET failed validation and returned error code 0xC0208452.  End Error  

Error: 2023-01-06 08:10:53.83     Code: 0xC004700C     Source: ETL SSIS.Pipeline     Description: One or more component failed validation.  End Error  

Error: 2023-01-06 08:10:53.83     Code: 0xC0024107     Source: ETL    Description: There were errors during task validation.  End Error  

DTExec: The package execution returned DTSER_FAILURE (1).  Started:  8:10:51 AM Finished: 8:10:53 AM Elapsed:  1.953 seconds.  The package execution failed.  The step failed.**

已知信息:

  • 作业以SQL Server Agent服务账户运行,该账户在Azure SQL中拥有db_owner权限,与开发环境权限一致
  • 源实例均为SQL Server 2017 CU25
  • 包存储在对应服务器本地

排查步骤

1. 网络连通性检查

  • 在生产SQL Server服务器上,执行Test-NetConnection <Azure_SQL_Server_Name>.database.windows.net -Port 1433或telnet <Azure_SQL_Server_Name>.database.windows.net 1433,验证端口1433的连通性
  • 确认Azure SQL的防火墙规则已添加生产服务器的公网IP地址(若使用公网连接)
  • 检查生产环境本地防火墙、企业级防火墙是否允许出站访问Azure SQL的1433端口

2. 身份验证与权限验证

  • 以SQL Server Agent服务账户身份登录生产服务器,执行sqlcmd -S <Azure_SQL_Server_Name>.database.windows.net -d <Database_Name> -E,测试Azure SQL的集成身份验证是否正常
  • 若使用SQL身份验证,检查包连接字符串中的用户名、密码是否正确,是否误配置为开发环境凭据
  • 直接使用Agent账户登录Azure SQL,执行SELECT * FROM sys.databases确认db_owner权限实际生效

3. 驱动与组件配置检查

  • 对比开发、生产环境的ODBC/ADO.NET驱动版本,确保生产环境安装了适配Azure SQL的最新驱动(优先使用Microsoft.Data.SqlClient)
  • 检查SSIS连接管理器的配置:
    • 确认Provider选择正确,避免使用过时的System.Data.SqlClient
    • 连接字符串是否包含Encrypt=Yes参数(Azure SQL强制要求加密连接)

4. 包配置与保护级别检查

  • 检查包是否依赖环境变量/配置文件,确认生产环境的配置项指向正确的Azure SQL服务器和数据库
  • 查看包的保护级别:若使用EncryptSensitiveWithUserKey,因生产环境运行账户与开发环境不同,敏感信息会无法解密,需改为EncryptSensitiveWithPassword或ServerStorage

5. 详细错误日志捕获

  • 启用SSIS包的详细日志,勾选OnError等关键事件,获取更具体的连接错误详情(默认报错过于笼统)
  • 使用命令行执行包并生成日志:dtutil /FILE "<Local_Package_Path>" /RUN /LOG "<Log_File_Path>",从日志中提取底层错误信息
  • 查看SQL Server Agent作业的完整历史记录,确认是否有未显示的附加错误提示

6. SQL Server Agent权限检查

  • 确认Agent服务账户对本地存储的SSIS包文件有读取权限
  • 在服务管理器中验证Agent服务的登录账户是否与用于Azure SQL权限验证的账户一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:00:56