我希望使用 SSRS 进行多租户报告,并且希望能够为我的报告提供运行时选择的共享数据源。我这是什么意思?好吧,我可以灵活处理,但我认为最有可能的两种可能性是(但是,我也对其他可能性持开放态度):
- 共享数据源由客户端的身份验证决定。就我而言,“客户端”是 .NET 应用程序而不是用户,因此如果这是一条可行的路径,那么我希望以某种方式拥有
MainDB
(这就是我所说的)由客户端登录的服务帐户选择的共享数据源。
- 将共享数据源的名称作为参数传递,并让它决定使用哪一个。鉴于我所有的客户都是“值得信赖的玩家”,我对这种方法感到满意。虽然每个客户都有自己的代表服务帐户,但这只是为了更好的衡量标准,并不重要。所以不仅仅是调用数据源
MainDB
,我们可以改为Client1DB
and Client2DB
等等。如果新的数据源意味着新的部署,那没关系,但我需要它能够随着时间的推移轻松地扩展到约 50 个不同的数据源。
为什么?因为我们为多个客户提供了多个/重复的生产应用程序副本,但我们不想重复一切,只是网络应用程序和数据库。我们对一些常见的“后端”事物很满意。对于 SSRS,由于许可证非常昂贵(以及我们的用户很少运行报告),我们真的希望为所有客户提供一个后端(实际上我有第二个后端用于手动灾难)恢复情况 - 我们不需要在这里太花哨,因为报告是我们最不重要的灾难恢复问题)。
我见过这个问题 https://stackoverflow.com/questions/1709837/ssrs-dynamic-shared-data-source这指向这个帖子 https://www.codeproject.com/Articles/355461/Dynamically-Pointing-to-Shared-Data-Sources-on-SQL但我真的希望有比这更好的方法。由于所有这些额外的步骤/工作/限制/等,我宁愿只使用 PowerShell 使用经过调整的硬编码数据源来编写报告的重复部署脚本,而不是对该帖子中的步骤进行标准化。这个解决方案对我来说太老套了,而且似乎根本无法很好地扩展。
我已经用了很多糟糕的方法(通常在动态脚本中硬编码)来完成此操作,然后我发现它实际上非常简单。
不要使用共享连接,而是使用嵌入式连接并根据参数(或任何字符串操作代码)创建连接字符串......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)