【问题标题】:Meteor : One database per tenant in multi-tenancy appMeteor:多租户应用程序中每个租户一个数据库
【发布时间】:2014-11-01 00:26:00
【问题描述】:

大多数较早的博客/帖子建议在集合中的每个条目中使用tenant_id。并在每个查询中使用tenant_id 来隔离 Meteor 应用中的租户。

但是,现在是否可以在多租户应用程序中为每个租户拥有一个 MongoDB 数据库,并根据租户 ID/子域在这些数据库之间切换流星?或者在每个条目中添加tenant_id是在Meteor中实现多租户的唯一方法?

【问题讨论】:

  • 为什么要每个租户一个数据库?
  • @merlinpatt 在某些领域,如银行和医疗保健,将客户数据混合在一个数据库中可能很危险,只要您忘记按租户 ID 和客户 a 查看客户 b 的数据进行过滤。在数据库级别进行隔离还可以让您更轻松地移动客户数据,例如,在 saas 中的入门层支付的客户可能都在小型数据库服务器上,而支付高级层的客户可能会升级到更大的数据库服务器.在服务器之间移动数据库比在两个数据库之间基于 Id 导入和导出数据要容易得多。
  • 我同意移动数据可能会稍微容易一些并且分层。但是,不要因为您可能忘记过滤而混合使用并不是很大的原因。您可以很容易地弄乱您的代码,从而访问两个数据库而不是一个。因此,我不认为将客户端分离到单独的数据库中会增加那么多的安全性或操作的便利性。
  • 我正在寻找相同的,如果您找到任何解决方案,请告诉我。

标签: meteor


【解决方案1】:

这是可能的,但没有记录 - 使用风险自负:

var d = new MongoInternals.RemoteCollectionDriver("<mongo url>");
C = new Mongo.Collection("<collection name>", { _driver: d });

【讨论】:

  • 请解释给定的示例,C 是什么,它是故意全局的吗?
猜你喜欢
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2012-02-19
相关资源
最近更新 更多