2

我希望将 SSRS 用于多租户报告,并且我希望能够为我的报告提供运行时选择的共享数据源。我这是什么意思?好吧,我可以很灵活,但我认为最有可能的两种可能性是(但是,我也对其他可能性持开放态度):

  1. 共享数据源由客户端的身份验证决定。在我的情况下,“客户端”是一个 .NET 应用程序而不是用户,所以如果这是一条可行的路径,那么我想以某种方式让MainDB服务选择的(这就是我所说的)共享数据源客户端登录的帐户。
  2. 将共享数据源的名称作为参数传递,并让其决定使用哪一个。鉴于我所有的客户都是“值得信赖的玩家”,我对这种方法感到满意。虽然每个客户都有自己的代表服务帐户,但这只是为了很好的衡量标准,并不重要。因此,我们不仅可以调用 data source MainDB,还可以使用Client1DBandClient2DB等。如果一个新的数据源意味着一个新的部署,这没关系,但我需要它能够随着时间的推移足够容易地扩展到大约 50 个不同的数据源。

为什么?因为我们为多个客户提供生产应用程序的多个/重复副本,但我们不想复制所有内容,只复制 Web 应用程序和数据库。我们对一些常见的“后端”事情很好。对于 SSRS,由于许可证非常昂贵(而且我们的用户很少运行报告),​​我们真的希望为所有客户提供一个后端(实际上我有第二个后端待命以应对手动灾难恢复情况——我们在这里不需要太花哨,因为报告是我们最不重要的 DR 问题)。

我已经看到了指向这篇文章的这个问题,但我真的希望有比这更好的方法。由于所有这些额外的步骤/努力/限制/等,我宁愿只使用 PowerShell 来编写带有调整后的硬编码数据源的报告的重复部署脚本,而不是对该帖子中的步骤进行标准化。该解决方案对我来说太老套了,而且似乎根本无法很好地扩展。

4

1 回答 1

4

我已经完成了一堆糟糕的方法(通常在动态脚本中硬编码),然后我发现它实际上非常简单。

不要使用共享连接,而是使用嵌入式连接并根据参数(或任何字符串操作代码)创建连接字符串......

在此处输入图像描述

于 2017-01-04T05:37:03.667 回答