【问题标题】:Multitenant NHibernate application with with separate SQL Server schema for each tenant多租户 NHibernate 应用程序,每个租户都有单独的 SQL Server 架构
【发布时间】:2011-06-01 22:26:10
【问题描述】:

我正在编写一个新的多租户 WCF RIA 应用程序。我计划为每个租户拥有一个具有单独 SQL Server 架构的共享数据库。我想使用 NHibernate 进行对象理性映射。

在映射类中配置 SQL Server 架构没有帮助,因为它是静态的,并且需要为每个租户使用一组映射类。

是否可以动态配置 ISession 应该使用哪个 SQL Server 架构将对象映射到表?

【问题讨论】:

  • 每个架构/客户端之间是否有任何联系?
  • 是的,每个客户端(租户)都有一个单独的架构。

标签: sql-server nhibernate multi-tenant


【解决方案1】:

如果客户端之间没有链接,那么拥有单独的数据库可能是有意义的。

尤其重要的是,如果客户端 A 说“请恢复”,您不会破坏其他客户端的数据。

【讨论】:

  • 我完全同意你的看法。问题是会有很多小客户。这给我留下了很多需要管理和付费的小型数据库(我计划使用 SQL Azure)。
  • 啊,好的。那不是我最好的主意
  • 我将从一个数据库开始,但如果需要,将支持将客户端分散到更多数据库上。每个数据库将包含许多客户端的数据,具体取决于它们的使用情况。通过这种设置,一个数据库可以只包含一个客户的数据,如果他们需要它并且想要支付额外费用。
【解决方案2】:

您必须为每个客户端创建一个单独的 SessionFactory,相应地更改配置中的 default_schema 属性。

【讨论】:

  • 我非常喜欢为每个客户端设置单独的 SessionFactory 的想法。这样,我还可以为每个客户端使用单独的用户名,并仅授予它对来自一个模式的对象的权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 2017-09-16
  • 2014-11-01
相关资源
最近更新 更多