从另一个帐户下的存储过程调用SSIS包

时间:2015-03-31 03:24:44

标签: sql-server stored-procedures ssis proxy

我有一个存储过程,它使用EXEC SSISDB.CATALOG.start_execution @Execution_Id方法运行并调用SSIS pacakge。

但是我需要在具有更多权限的服务帐户下执行包,而不是用户的帐户。

使用EXECUTE AS LOGIN =不起作用。有谁知道如何实现这一目标。我所知道的唯一其他方式涉及代理人工作和代理帐户。

当然,有一种简单的方法可以在SQL 2012上实现这一目标吗?

1 个答案:

答案 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;