从不同帐户下的存储过程调用 SSIS 包
Posted
技术标签:
【中文标题】从不同帐户下的存储过程调用 SSIS 包【英文标题】:Calling SSIS package from stored procedure under a different account 【发布时间】:2015-03-31 03:24:43 【问题描述】:我有一个存储过程,它使用 EXEC SSISDB.CATALOG.start_execution @Execution_Id 方法运行和调用 SSIS 包。
但是我需要在具有更多权限的服务帐户而不是用户帐户下执行包。
使用 EXECUTE AS LOGIN = 不起作用。有谁知道如何做到这一点。我知道的唯一其他方式涉及代理工作和代理帐户。
在 SQL 2012 上肯定有一种简单的方法可以实现这一点吗?
【问题讨论】:
我过去使用您提到的代理工作和代理帐户解决了这个问题。 【参考方案1】:'EXECUTE AS' 对我来说很好用。
需要注意的一点是在调用执行方法之前将上下文切换到 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;
【讨论】:
以上是关于从不同帐户下的存储过程调用 SSIS 包的主要内容,如果未能解决你的问题,请参考以下文章