我有一个存储过程,它使用EXEC SSISDB.CATALOG.start_execution @Execution_Id方法运行并调用SSIS pacakge。
但是我需要在具有更多权限的服务帐户下执行包,而不是用户的帐户。
使用EXECUTE AS LOGIN =不起作用。有谁知道如何实现这一目标。我所知道的唯一其他方式涉及代理人工作和代理帐户。
当然,有一种简单的方法可以在SQL 2012上实现这一目标吗?
答案 0 :(得分:0)
'EXECUTE AS'对我来说很好。
需要注意的一件事是在调用execute方法之前将上下文切换到SSIS目录数据库。因此,“USE”声明在最顶层。
USE SSISDB;
EXECUTE AS LOGIN = 'domain\user'
DECLARE @execution_id BIGINT
EXEC CATALOG.create_execution @folder_name = 'MyFolder1',
@project_name = 'MyProject', @package_name = 'Package.dtsx',
@use32bitruntime = 1, @execution_id = @execution_id OUTPUT;
EXEC CATALOG.start_execution @execution_id;