我在使用Windows身份验证/ sql身份验证从SSIS包调用SSID DB目录存储过程时遇到以下错误。
错误细节:
[执行SQL任务]错误:执行查询“EXEC [SSISDB]。[目录]。[create_execution]?,?,...”失败,出现以下错误:“操作无法通过以下帐户启动使用SQL Server身份验证。使用使用Windows身份验证的帐户启动操作。“可能的失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。
基本上我正在尝试使用FOR EACH LOOP
创建一个主程序包来运行自定义表列表中的所有包,然后使用EXECUTION ID
捕获错误,方法是检查EVEN - OnERROR登录相同的目录表。
但是在调用存储过程的阶段,我遇到了这个问题。请帮助并指导我。如何使用目录存储过程运行此包以按顺序运行包,使SSIS目录项目中部署的包列表按顺序运行?
欢迎提出建议
SP代码:
ALTER PROCEDURE [发布]。[usp_ExecutePackages] @PackageName NVARCHAR(255),@ ProjectFolder NVARCHAR(255),
@ProjectName NVARCHAR(255)AS BEGIN SET NOCOUNT ON;宣布 @Execution_id BIGINT; EXEC [SSISDB]。[目录]。[create_execution] @ package_name = @PackageName,@ execution_id = @Execution_id OUTPUT,
@ folder_name = @ProjectFolder,@ project_name = @ProjectName,
@ use32bitruntime = TRUE;EXEC [SSISDB]。[目录]。[set_execution_parameter_value] @execution_id, @ object_type = 50,@ parameter_name = N'SYNCHRONIZED',@ parameter_value = 1
EXEC [SSISDB]。[目录]。[start_execution] @Execution_id
答案 0 :(得分:0)
答案在错误信息中:
error: "The operation cannot be started by an account that uses SQL Server Authentication. Start the operation with an account that uses Windows Authentication.
如果您登录SQL的帐户不是Windows身份验证帐户,则从TSQL存储过程调用SSIS不起作用。这是因为SSIS是一个外部窗口进程&因此它无法识别仅存在于SQL Master数据库中的Logins。
解决方案:使用现有的AD帐户或创建新的本地帐户。在SQL&上创建一个新的登录指定Windows身份验证。 然后用它登录。