SSIS 包在 SQL Server 中作为 SQL Server 身份验证运行

SSIS package run as SQL Server Authentication in SQL Server

提问人:Hardik 提问时间:11/16/2023 最后编辑:Hardik 更新时间:11/16/2023 访问量:37

问:

任何人都可以帮助我运行我的SSIS包是SQL Server身份验证,因为它是执行的。

它是使用 SQL Server 身份验证的 SSIS 包的 My Stored Procedure 调用方法

DECLARE @execution_id BIGINT;
        EXECUTE AS LOGIN = 'windowsuser';
        EXEC [SSISDB].[catalog].[create_execution]
            @package_name = @package_name
            , @execution_id = @execution_id OUTPUT
            , @folder_name = @folder_name
            , @project_name = @project_name
            , @use32bitruntime = False
            , @reference_id = NULL
            , @runinscaleout = False;
        
        EXEC  [SSISDB].[catalog].[set_execution_parameter_value]
            @execution_id
            , @object_type = 30
            , @parameter_name = N'SbInvoiceID'
            , @parameter_value = @SBInvoiceId;
        
        EXEC [SSISDB].[catalog].[start_execution] @execution_id;
        REVERT
  • [目录]。create_execution][目录]。set_execution_parameter_value] 使用 EXECUTE AS LOGIN 成功运行,但 [catalog]。start_execution] @execution_id抛出错误。

错误:

Msg 27123, Level 16, State 1, Line 3
The operation cannot be started by an account that uses SQL Server Authentication. Start the operation with an account that uses Integrated Authentication.
Msg 6522, Level 16, State 1, Procedure internal.start_execution_internal, Line 0 [Batch Start Line 2]
A .NET Framework error occurred during execution of user-defined routine or aggregate "start_execution_internal": 
System.Data.SqlClient.SqlException: The operation cannot be started by an account that uses SQL Server Authentication. Start the operation with an account that uses Integrated Authentication.
System.Data.SqlClient.SqlException: 

谁能帮我进入它,但无法运行作业,因为我们需要设置动态参数值,所以任何人都可以帮我进入它吗?

sql-server ssis-2012

评论

0赞 Thom A 11/16/2023
提问时,请不要上传代码/数据/错误的图片。
2赞 Thom A 11/16/2023
错误非常明显;不能使用 SQL 身份验证启动包。您需要使用 Windows 身份验证帐户。 无法解决此问题,因为您只是在模拟它们,您实际上并没有被验证为它们,因此 SSIS 进程无法作为您正在模拟的启动。EXECUTE ASLOGIN
0赞 Hardik 11/16/2023
我知道,但我无法使用 Windows 身份验证,因为我的整个 API 都在 SQL 身份验证中运行,所以请建议我更改存储过程,以便我可以使用 Windows 身份验证运行 SSIS
1赞 Thom A 11/16/2023
然后,您需要寻找不同的解决方案。例如,可能需要在表中运行包和参数的详细信息,然后让代理任务(使用 AD)循环访问未处理的任务。INSERT
1赞 Thom A 11/16/2023
然后,需要更新 API 以使用 Windows 身份验证。

答: 暂无答案