使用具有最小权限的Windows用户运行使用SSIS目录过程的存储过程

时间:2013-07-04 06:12:32

标签: sql sql-server ssis

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

我使用

创建了存储过程
  1. SSISDB.Catalog.Create_Execution
  2. Set_Execution_Parameter_Value和
  3. Start_Execution。
  4. 这样可行,但是对于运行,用户需要在principal_db上使用db_owner特权,在SSISD上使用ssis_admin这只会在执行用户是一个Windows帐户时运行,没有问题但是我需要windows帐户在principal_db上有最小的权限,我知道我不能使用Sql用户,因为它是必需的Windows帐户但是当我创建我的过程时,为执行存储过程执行permition给主数据库中的win用户,在SSISDB上创建win用户并给出目录上的permision程序

    1. SSISDB.Catalog.Create_Execution
    2. Set_Execution_Parameter_Value
    3. Start_Execution
    4. 并在我的存储过程中添加“execute as owner”子句,向我显示下一个错误 我尝试使用Execute As并指定一个Windows帐户,但我收到了错误

        

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

      我尝试使用“执行为自己”,当我尝试使用另一个获胜用户(给予权限)运行程序时,显示我是必要的Windows帐户。

      我的用户已经知道了

      1. db_owner
      2. sysadmin和
      3. ssis_admin
      4. 我认为我需要对用户执行此操作的权限,考虑到我的过程使用2个数据库principal_db(其中记录我的过程)和SSISDB(其中存在用于创建执行和放置参数的目录过程)。 / p>

        有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

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

包引用DB2 proc,需要DBO所以proc必须具有EXECUTE作为OWNER AND Proc有GRANT Execute to Win User

安排WIN USER拥有的工作步骤......这样呢?并失败了?