【发布时间】:2017-01-03 16:01:17
【问题描述】:
我希望将 SSRS 用于多租户报告,并且我希望能够为我的报告提供运行时选择的共享数据源。我这是什么意思?好吧,我可以很灵活,但我认为最有可能的两种可能性是(不过,我也对其他可能性持开放态度):
- 共享数据源由客户端的身份验证决定。在我的情况下,“客户端”是一个 .NET 应用程序而不是用户,所以如果这是一条可行的路径,那么我想以某种方式选择
MainDB(这就是我所说的)共享数据源通过客户端登录的服务帐户。 - 将共享数据源的名称作为参数传递,并让其决定使用哪一个。鉴于我所有的客户都是“值得信赖的玩家”,我对这种方法感到满意。虽然每个客户都有自己的代表服务帐户,但这只是为了很好的衡量标准,并不重要。因此,不只是调用数据源
MainDB,我们还可以使用Client1DB和Client2DB等。如果一个新的数据源意味着一个新的部署也没关系,但我需要它能够轻松地扩展到~50随着时间的推移,不同的数据源。
为什么?因为我们为多个客户提供生产应用程序的多个/复制副本,但我们不想复制所有内容,只复制 Web 应用程序和数据库。我们对一些常见的“后端”事情很好。对于 SSRS,由于许可证非常昂贵(而且我们的用户很少运行报告),我们真的希望为所有客户提供一个后端(实际上我有第二个后端待命以应对手动灾难恢复情况 - 我们在这里不需要太花哨,因为报告是我们最不重要的 DR 问题)。
我看到this question 指向this post,但我真的希望有比这更好的方法。由于所有这些额外的步骤/努力/限制/等,我宁愿只使用 PowerShell 来编写带有经过调整的硬编码数据源的报告的重复部署脚本,而不是对该帖子中的步骤进行标准化。这个解决方案对我来说太老套了,而且似乎根本无法很好地扩展。
【问题讨论】:
-
这是一个老问题,但我想知道您是否曾经通过选项#2?我有同样的问题,将连接字符串作为参数传递给嵌入式数据源是我的场景中的一个问题。我需要一种方法让报表基于参数调用不同的共享数据源。
标签: reporting-services ssrs-2014