我有一个带有使用 SqlClient 数据提供程序的 SQL 连接的 SSIS 包。 它的连接字符串是通过表达式从变量设置的。
我在 SSIS 服务器上托管了一个 .NET 4.8 Windows 服务。它使用以下过程运行 SSIS 包:
[catalog].[create_execution]
[catalog].[set_execution_property_override_value]
设置连接字符串变量[catalog].[start_execution]
一切正常。
现在我想用另一台服务器上的 IIS 中托管的 .NET 8 Web 服务替换该 Windows 服务。
包启动,但失败并出现错误:
获取连接“MyConnection”失败。连接可能未正确配置,或者您可能没有此连接的正确权限。
更新:如果我尝试从脚本任务打开 .NET
SqlConnection
,我会得到
System.Data.SqlClient.SqlException(0x80131904):用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。
尽管任务显示它正在作为预期的域帐户运行。
为什么?
在此处找到以下内容:
SSIS Windows 服务不支持委派SSIS 不支持凭据委派,有时称为双跳。在此方案中,您正在客户端计算机上工作,SSIS 安装在第二台计算机上,SQL Server 安装在第三台计算机上。尽管 SSMS 成功地将您的凭据从客户端计算机传递到第二台计算机(运行 SSIS 的计算机),但 SSIS 无法将您的凭据从第二台计算机委托给第三台计算机(运行 SQL Server 的计算机)。