Postgresql多租户数据库体系结构



我们正在设计一个商业智能应用程序,用于存储来自多个客户的数据。我们当然希望确保每位客户的数据安全。在大多数情况下,客户应该只能查看自己的数据,但在极少数情况下,用户可能有权查看多个客户的数据,而我们自己的少数员工需要能够查看和分析所有客户的所有数据。我们还需要能够将数据访问限制在公司级别以下,因此例如,我们可能希望将用户可以看到的数据限制为来自特定国家或城市的数据。所有客户的数据库结构都是相同的,如果我们更改结构,它将适用于所有客户。这是一个专业的应用程序,在我们最疯狂的梦想中,它永远不会有10个或更少的客户,或者30个。目前,我们的数据库结构有78个表,但每个客户的实际数据大小相对较小,很可能是兆字节,最大可能是一个千兆字节。我们知道它们有各种选择,单独的数据库、带模式的单个数据库、行级安全性以及这些的组合,但尽管我们在谷歌上进行了大量搜索并征求了专家的建议,但对于实现我们目标的最佳架构,我们仍然没有一个明确的答案。该数据库将由两个应用程序访问,一个是用于从各种来源填充数据库的独立C#程序,另一个是用PHP/Laravel编写的web仪表板/报告应用程序,理想情况下,我们希望在这两个程序上使用相同的安全/登录密码。非常感谢任何建议。

@tippo我们知道它们是各种选项,独立的数据库,具有模式、行级安全性和这些

我们也有同样的问题需要选择。最终,每个客户的最大隔离度对我们来说非常重要。所以我们选择了单独的数据库。一个优点(除了安全性(是我们可以分别移动、维护和恢复每个单独的数据库。

唯一的问题是在更新表、列、视图等时。您必须为每个数据库使用单独的例程。

最新更新