Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL代理中的SSRS订阅失败-无法确定作业的所有者是否具有服务器访问权限_Sql Server_Reporting Services_Sql Server 2016_Sql Server Agent - Fatal编程技术网

Sql server SQL代理中的SSRS订阅失败-无法确定作业的所有者是否具有服务器访问权限

Sql server SQL代理中的SSRS订阅失败-无法确定作业的所有者是否具有服务器访问权限,sql-server,reporting-services,sql-server-2016,sql-server-agent,Sql Server,Reporting Services,Sql Server 2016,Sql Server Agent,我在没有固溶体的情况下对此做了很多研究 我刚刚在与SQL 2016实例相同的服务器上设置了一个新的SSRS实例。一切都在以报表方式运行,等等。问题是,当计划报表时,它会在Sql Server中创建一个Sql代理作业,并且Sql代理会出现以下错误: 工作失败了。无法确定所有者 作业17F8E31D-0838-4829-8C3C-E3FE5BBD3483的(MyDomain\ReportService) 具有服务器访问权限(原因:无法获取有关Windows的信息) NT组/用户“MyDomain\R

我在没有固溶体的情况下对此做了很多研究

我刚刚在与SQL 2016实例相同的服务器上设置了一个新的SSRS实例。一切都在以报表方式运行,等等。问题是,当计划报表时,它会在Sql Server中创建一个Sql代理作业,并且Sql代理会出现以下错误:

工作失败了。无法确定所有者 作业17F8E31D-0838-4829-8C3C-E3FE5BBD3483的(MyDomain\ReportService) 具有服务器访问权限(原因:无法获取有关Windows的信息) NT组/用户“MyDomain\ReportService”,错误代码0x5。[SQLSTATE] 42000](错误15404))

当前设置:

  • SSRS使用Active Directory帐户作为名为 报告服务
  • Sql Server 2016引擎正在使用Active Directory帐户作为服务 名为SqlService的帐户
  • SSR和SQL数据库都在同一台计算机上
  • 我仔细检查了SqlService是否是SysAdmin,是否有所有其他 权限和非SSRS作业正常运行
  • 根据我的研究,我可以用三种方法之一解决这个问题:

  • 将SSRS创建的SSRS SQL代理作业更改为SA所有(由 默认作业由MyDomain\ReportService拥有)。问题 有了它,每次用户创建 通过SSRS创建新订阅或创建正在进行的脚本,因为SSRS 默认情况下,将使用该服务作为所有者。我知道这个 不是在我以前的雇主做的

  • 我可以让SqlService成为一个 域管理员。出于安全考虑,我不想这么做, 很明显

  • 我可以给SqlService“SeImpersonatePrivilege” (登录后模拟客户端)通过安全 政策。这也是可行的,但似乎会有一个 更好的方法,我认为这也是一种安全风险 设置此选项不会显式地将SqlService限制为 模拟ReportService


  • 因此,我的问题希望来自那些设置了SSRS的人,允许SQL Server运行SSRS订阅的最佳实践是什么?我们的环境中可能存在一些权限方面的问题,但我想我主要是在寻求关于如何设置的建议。提前非常感谢你

    我最终发现我们对服务帐户的active directory权限有某种限制。我无法确定确切的权限,但在将帐户添加到显式允许查看active directory用户和组的组后,它起到了作用。因此,这是由于对基本域用户权限的异常限制

    从上面列出的站点:

    无法获取有关Windows NT组/用户“domainuser”的信息,错误代码0x5。[SQLSTATE 42000](错误15404)(ConnIsLoginSysAdmin)

    解决方案是将SQL Server服务帐户添加到DC上的“内置Windows授权访问组”中。


    然后,您可以在SQL Server上运行“以用户身份执行='domainuser'”,以检查。

    哪个服务帐户?SSRS还是SqlAgent?对不起,我刚才很困惑,才意识到您的问题引用了我下面的答案。我指的是SQL Server服务帐户。因此,如果从SQLServer配置管理器查看,则称为SQLServer。我不需要对Sql代理或SSRS帐户做任何事情。