多年来,我们有一个报告数据库,我们已经编写了SSRS报告,其中包括一些链接服务器。链接服务器设置在报告服务所在的SQL实例上,以及我们用于报告的主数据库。我们决定从主服务器拆分报告服务,并给它自己的房子。
我已经设置了SQL 2014以及报告服务,并在那里发布了我的报告。所有“非关联”报告都可以正常运行。但是,所有引用链接服务器(以前在主服务器上工作)的报告现在都会失败,并在日志文件中出现以下错误:
拒绝访问远程服务器,因为当前的安全上下文不受信任。
我想也许我需要在新的RS SQL服务器上设置链接服务器才能使其正常工作。我假设它将整个查询(包括链接部分)传递给指定的数据源,我的主服务器将运行它并返回数据。不过,我在新的报告服务框上设置了完全相同的链接服务器......但仍然收到相同的错误。
所有这些报告在原始服务器上运行良好,但无论它们连接到哪个链接服务器,它们似乎都在新服务器上出现问题。
我很茫然,并且会喜欢你们可能有的任何想法。
服务器A: 主要数据来源。此服务器包含我们的大部分数据,并且还包含我们的Reporting Services。此服务器具有指向我能够打开查询的其他几个SQL服务器的链接,并将数据连接到我们的主数据源。我们发布了许多利用链接服务器的报告,并且历史上没有提供任何问题。
服务器B: 新的SSRS盒子。设置此新服务器的目的是将所有报告需求卸载到另一个盒子,从而释放运行报告和SSIS包所需的任何资源。我把所有现有的报告都按原样发布到新服务器上。最初我认为我不需要在此框中重新创建链接服务器,因为这些请求将转到我的主数据源(服务器A)。我已经尝试过,并且没有服务器B上存在的链接服务器,但得到相同的结果。当服务器B上存在链接服务器DID时,我能够直接查询它们而没有错误。服务器B上的服务使用与服务器A上相同的凭据运行。
答案 0 :(得分:0)
好吧,我做了一些挖掘并找到了解决方案。因此,数据源始终使用最终用户凭据来运行报告。在旧服务器上,链接服务器使用硬编码的SQL帐户进行连接。只要它在一台服务器上就可以正常工作。但是,从辅助服务器运行时,似乎此方案不起作用。相反,我发现如果我使数据源使用相同的'硬编码的SQL帐户和链接服务器连接到服务器A,链接的服务器工作正常。