如何限制用户访问某些数据

How to restrict user access to some data

有一个关于报表生成器服务和 BI 平台的问题。 我们有多租户数据库 mongoDB,我们在其中存储所有用户数据、用户订单、用户交易。

我希望每个用户都能够构建自己的报告(考虑使用其中之一:CrystalReports、JasperSoft、ReportServer)。

但问题是 - 当用户可以访问数据库(例如通过 CrystalReports)时,他可以轻松地生成包含其他用户订单或交易数据的报告。
为将使用报告构建工具的用户提供数据(来自一个数据库)的最佳做法是什么?

用户应该使用一些 UI 与中间语义模型(维度、度量、过滤参数)一起运行。他们不应该直接访问数据库并编写 SQL - 如果您为每个客户都有单独的数据库,则唯一的例外是可能的。

正确的解决方案在很大程度上取决于用户创建自己的报告的目的。如果主要目标是商业智能,您可以为您的用户提供某种数据透视表/数据透视图生成器。