SSIS作业用代理账户在SQL Server 2019集群n1节点报407错误如何解决
407 Proxy Authentication Required 错误本质是节点访问外部网络资源时,中间代理服务器要求提供合法身份凭证,故障转移后n2节点正常,说明问题完全限定在n1节点的本地配置范畴,和集群级的SQL Server配置、SSIS包逻辑、作业代理的全局权限无关。
错误原因分析
- 节点系统代理配置不一致:n1节点配置了需要认证的WinHTTP/全局系统代理,n2节点未配置代理或者配置的代理无需认证,SSIS发起网络请求时默认调用当前节点的系统代理规则。
- SSIS代理账户的本地凭据缺失:运行作业的代理账户在n1节点的Windows凭据管理器中没有存储代理服务器的有效认证信息,n2节点同账户已经预先存储了合法的代理认证凭据。
- 节点出口网络规则差异:n1节点的出口流量被网络策略强制转发到需要认证的代理服务器,n2节点的出口流量被放行直连SSIS要访问的目标地址,无需经过代理。
- 用户级代理配置差异:如果SSIS调用用户态的IE代理配置,代理账户在n1节点的IE代理设置为需要认证且未保存密码,n2节点同账户的IE代理设置为直连或已保存有效凭证。
修复方案
1. 首先排查两台节点的配置差异
- 分别以管理员身份登录n1、n2节点,打开PowerShell执行
netsh winhttp show proxy,对比两个节点的系统级WinHTTP代理配置(SSIS网络请求默认优先读取该配置)。 - 切换到SSIS作业对应的代理账户登录两台节点,打开「控制面板→凭据管理器→Windows凭据」,检查是否有存储代理服务器对应的地址、认证用户名和密码。
- 用代理账户身份在两台节点分别访问SSIS包请求的目标HTTP/HTTPS地址,确认n1节点是否会弹出代理认证弹窗,n2是否可以直接访问。
2. 针对性修复配置
- 若确认是WinHTTP代理配置差异:如果业务不需要走代理,在n1节点执行
netsh winhttp reset proxy重置为直连模式;如果需要统一走代理,在n1节点执行netsh winhttp set proxy proxy-server="http://<代理地址>:<端口>" bypass-list="*.本地域名.com;<local>"配置和n2一致的代理规则,同时在凭据管理器为SSIS代理账户添加代理的有效认证凭据。 - 若确认是代理凭据缺失:在n1节点登录SSIS代理账户,在凭据管理器中新增代理服务器对应的Windows凭据,填写有权限通过代理的域名/本地用户名、密码。
- 若确认是网络规则差异:联系企业网络运维团队调整n1节点的出口策略,和n2节点保持一致,取消强制代理转发或者添加n1节点的代理白名单。
3. 效果验证
修复完成后直接将集群切回n1作为主节点,运行对应SSIS作业确认407报错消失即可。
内容的提问来源于stack exchange,提问作者Kivo
相关产品推荐
相关产品推荐

