3

我需要通过存储过程运行.dtsx安装在 SSIS 目录中的带有参数的包,因为一个应用程序使用带有参数值的存储过程触发了 dtsx

我已经使用创建了存储过程

  1. SSISDB.Catalog.Create_Execution
  2. Set_Execution_Parameter_Value 和
  3. 开始执行。

这行得通,但是为了运行,用户需要在 principal_db 上拥有 db_owner 权限,在 SSISD 上拥有 ssis_admin 这只有在执行用户是 Windows 帐户时才会运行,这没问题,但我需要 Windows 帐户在 principal_db 上具有最小权限,我知道我不能使用 Sql 用户执行此操作,因为需要一个 Windows 帐户,但是当我创建我的过程时,将执行存储过程的执行许可授予主体数据库中的 win 用户,在 SSISDB 上创建 win 用户并授予目录过程的权限

  1. SSISDB.Catalog.Create_Execution
  2. Set_Execution_Parameter_Value
  3. 开始执行

并将子句“以所有者身份执行”添加到我的存储过程中,显示​​下一个错误我尝试使用 Execute As 并指定 Windows 帐户,但出现错误

当前的安全上下文无法恢复。请切换到调用“执行为”的原始数据库并重试。

我尝试使用“以自我身份执行”,当我尝试与另一个 Win 用户(给予许可)运行该过程时,显示我是必要的 Windows 帐户。

我的用户有权限

  1. db_owner
  2. 系统管理员和
  3. ssis_admin

考虑到我的过程使用 2 个数据库 principal_db(记录我的过程)和 SSISDB(用于创建执行和放置参数的目录过程),我认为我需要获得对用户的执行权限。

有人可以帮助我吗?

4

1 回答 1

0

运行 DTSX 包需要 SSIDB 管理员权限。

包引用 DB2 proc,需要 DBO,因此 proc 必须以 OWNER 身份执行,并且 Proc 必须 GRANT Execute 才能赢得用户

计划由 WIN USER 拥有的作业步骤...这样吗?失败了?

于 2014-11-12T12:12:48.060 回答