我有一个SSIS包,可通过HTTP与远程服务器通信。我使用数据库中的存储过程(SQL Server 2012)执行SSIS包,该存储过程是从Web服务器调用的。Web服务器使用Windows身份验证连接到数据库。现在,我需要从不支持Windows身份验证的客户端运行存储过程(以及SSIS程序包)。SSIS程序包非常复杂,以至于无法移植到其他解决方案。
SSIS程序包具有传递的复杂变量。运行该程序包的存储过程如下所示:
CREATE PROCEDURE [dbo].[SSISPackage] @Parameter1 XML AS BEGIN SET NOCOUNT ON; DECLARE @execution_id BIGINT EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'API', @project_name=N'APIProject', @use32bitruntime=False, @reference_id=Null EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=30, @parameter_name=N'Parameter1', @parameter_value=@Parameter1 EXEC [SSISDB].[catalog].[start_execution] @execution_id END
从我所读的内容来看,无法与使用SQL Server身份验证进行身份验证的用户一起运行SSIS包。
我的问题是:
我认为您无法使用SQL Server身份验证执行此操作,您将收到以下异常:
该操作不能由使用SQL Server身份验证的帐户启动。使用使用Windows身份验证的帐户开始操作