多租户asp.net

时间:2011-05-12 01:13:12

标签: asp.net multi-tenant

我们的要求是为ASP.Net网站建立一个多租户独立的数据库架构。对于每个租户,将有单独的数据库,并且根据UserId,在运行时应确定要连接的数据库。代码已经在生产中,我不愿意在每个表中添加一个TenantId列,并在.Net代码中更改类似的代码。有没有一个解决方案,我们可以在SQL Server中创建分区db和UI应该动态连接到相应的分区。截至目前,我想到的方法是缓存所有连接字符串,并根据租户,在运行时选择ConnString。

2 个答案:

答案 0 :(得分:2)

根据您构建解决方案的程度,这可能会有点迟,但您可以查看以下框架:

您可以轻松做到的一件事是将多个客户合并到同一个数据库中,并将每个客户与不同的架构相关联;可以为每个用户标识分配一个模式,并为正确的模式分配足够的权限。根据您的情况,这可能有意义。您将使用Windows Azure / SQL Azure吗?

我询问SQL Azure的原因是因为配置新客户变得更加容易,因为它可以通过编程方式完成。

答案 1 :(得分:0)

如果您想使用给定的解决方案,则需要一个用户和主帐户的中央数据库。主帐户表将包含租户ID和连接字符串。 Users表将用户名,密码和FK保存到租户ID。

您登录中央数据库(始终是静态连接字符串)。您可以加入表并为主帐户建立连接字符串。