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