我在没有可靠解决方案的情况下对此进行了大量搜索。
我刚刚在与我的SQL 2016实例相同的服务器上设置了一个新的SSRS实例。一切都运行良好的报告明智等等。问题是,当计划报告时,它在SQL Server中创建一个Sql代理作业,并且SQL代理错误输出以下内容:
工作失败了。无法确定是否所有者 作业17F8E31D-0838-4829-8C3C-E3FE5BBD3483的(MyDomain \ ReportService) 有服务器访问权限(原因:无法获取有关Windows的信息 NT组/用户' MyDomain \ ReportService',错误代码0x5。 [SQLSTATE 42000](错误15404))。
当前设置:
根据我的研究,我可以通过以下三种方式解决此问题:
将SSRS创建的SSRS SQL代理作业更改为SA所有(通过 默认情况下,作业归MyDomain \ ReportService所有。问题 这就是每次用户创建时我都必须这样做 通过SSRS进行新订阅或创建正在进行的脚本,因为SSRS 默认情况下,将使用该服务作为所有者。而我知道这一点 没有在我以前的雇主那里完成。
我可以使SqlService成为一个 域管理员。出于安全考虑,我不想这样做, 明显。
我可以给SqlService" SeImpersonatePrivilege" (通过安全性在我的域上模拟登录后的客户端) 政策。这也有效,但似乎会有一个 更好的方式,我认为这也是一个安全风险 设置它并不显式限制SqlService 冒充ReportService。
所以,我希望那些已经设置SSRS的人提出问题,允许SQL Server运行SSRS订阅的最佳做法是什么?我们的环境中有可能出现这种情况搞砸了权限明智,但我想我主要是在寻找关于如何设置 的建议。非常感谢你提前。
答案 0 :(得分:0)
我最终发现我们对服务帐户的活动目录权限有某种限制。我无法确定准确的权限,但在将帐户添加到明确允许查看活动目录用户和组的组后,它可以正常工作。因此,这是由于基本域用户权限的异常限制。
答案 1 :(得分:-1)
从上面列出的网站:
无法获取有关Windows NT组/用户'domainuser'的信息,错误代码为0x5。 [SQLSTATE 42000](错误15404)(ConnIsLoginSysAdmin)
解决方案是将SQL Server服务帐户添加到DC上的“BUILTINWindows授权访问组”。
然后,您可以在SQL Server上运行“EXECUTE AS USER ='domainuser'”进行检查。