You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2014 SP2中SSIS包部署后执行权限报错如何解决?

解决SSIS部署后SQL代理作业权限报错问题

这个问题我之前碰过好多次,本质就是SQL Server 2014 SP2里的SSIS_Admin角色默认权限没覆盖到SSISDB内部的执行日志对象,导致代理账户跑作业时拿不到必要的执行信息。给你整理了一套排查和解决的步骤:

  • 确认代理账户的权限继承与身份正确性
    打开SSMS连接到你的SQL Server实例,找到安全性 > 代理 > 你的SSIS代理账户,右键查看属性:

    1. 确认它关联的凭据是正确的Windows账户,且该账户确实是SSISDB数据库中SSIS_Admin角色的成员。
    2. 检查是否存在误加的拒绝权限(拒绝权限优先级高于角色权限),可以执行以下查询验证:
      USE SSISDB;
      EXEC sp_helprotect @username = '你的代理账户名', @objname = 'internal.executions';
      
  • 手动授予SELECT权限(最直接的解决方案)
    SQL Server 2014 SP2的SSIS_Admin角色默认没有对internal.executions对象的SELECT权限,所以直接给角色或单独账户添加权限:

    USE SSISDB;
    -- 给SSIS_Admin角色授予权限,所有角色成员都会生效
    GRANT SELECT ON internal.executions TO SSIS_Admin;
    -- 如果仅需给单个代理账户授权,替换为你的账户名
    -- GRANT SELECT ON internal.executions TO [DOMAIN\你的代理账户];
    

    执行完成后重新运行SQL代理作业,大部分情况这就能解决问题。

  • 检查SQL代理作业的执行配置
    打开对应的SQL代理作业,找到SSIS包执行步骤:

    1. 确认运行身份选择的是你配置的SSIS代理账户,而非SQL代理服务账户(服务账户通常没有SSISDB的权限)。
    2. 验证作业步骤中的SSIS包路径是否指向正确的SSISDB目录,避免因环境选错导致权限不匹配。
  • 排查其他权限限制
    如果以上步骤无效,再检查以下内容:

    1. 查看SSISDB是否存在行级安全策略限制账户访问:
      USE SSISDB;
      SELECT * FROM sys.security_policies;
      SELECT * FROM sys.security_predicates;
      
    2. 确认代理账户对应的Windows账户拥有SQL Server实例的登录权限,且在SSISDB中的用户映射配置正确。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:57:40