在SAAS体系结构中,如何处理多租户的数据库模式和MVC用户登录

时间:2009-12-08 16:33:09

标签: asp.net sql asp.net-mvc multi-tenant saas

我们的要求是这样的。

我们正在ASP.NET MVC中构建一个多租户网站,每个客户都应该能够按照预定义的用户角色创建自己的用户。

我们正在考虑为几个表创建一个对客户来说很常见的模式。因此,客户可以根据他们的架构登录登录系统,我们不需要改变任何查询来为所有这些服务提供服务。

我们指的是http://msdn.microsoft.com/en-us/library/aa479086.aspx共享数据库,单独的架构。

有人可以建议关注 1.创建架构后如何针对特定架构授权用户 2.这可能是在没有任何更改的情况下,db可以为多租户提供服务

提前致谢 阿尼尔

2 个答案:

答案 0 :(得分:3)

经过大量研究后,我可以说,虽然它需要更多的开发和更多的检查,但共享数据库和共享模式是可行的方法。它对您如何轻松满足客户的特定需求提出了一些限制,但从我的观点来看,SAAS并不是为了满足单个客户的奇怪需求。这是为了迎合大多数客户。不是说它是SAAS,而是以iPhone为例。它的建立是为了迎合群众。而不是专注于做所有事情,而不仅仅是简单的一体化。在授权方面,这对你的情况没有帮助,但从长远来看,它可以节省你的工作时间。

答案 1 :(得分:0)

如果您在SQL Server身份验证/授权机制的上下文中询问此问题,我可以回答这个问题,即每个用户都有一个默认架构,可以帮助查询引擎找出数据库中所需的对象。

SQL查询引擎将首先查看用户的默认架构以查找所需的对象(表)。如果它在用户的架构中找到了该对象,则使用它,否则转到系统默认架构(dbo)以找到它。

检查this文章的如何引用对象部分,了解其工作原理。本文还提供了一些与模式相关的安全概念的信息。