在SAAS架构中,如何为多租户处理数据库模式和MVC用户登录?

6
我们的要求是这样的。
我们正在使用ASP.NET MVC构建一个多租户网站,每个客户都应该能够根据预定义的用户角色创建自己的用户。
我们考虑为几个表创建一个共同的模式。因此,客户可以根据他们的模式登录到系统中,我们不需要修改任何查询来服务于所有客户。
我们参考了“共享数据库,分离模式”的http://msdn.microsoft.com/en-us/library/aa479086.aspx
有人能否对以下内容提出建议: 1. 创建模式后如何授权用户针对特定模式进行操作? 2. 是否可能在不更改任何查询的情况下,数据库可以为多租户提供服务?
谢谢 Anil
2个回答

3
经过充分的研究,我可以说,尽管需要更多的开发和检查工作,但共享数据库和共享模式是可行的。它稍微限制了您如何轻松地满足客户的特定需求,但从我的角度来看,SAAS并不是为了迎合单个客户的奇怪需求,而是为了迎合大多数客户的需求。拿iPhone作为例子,它并不是为了迎合个别用户的需求而建造的,而是旨在服务于大众。它通过简单易用的特点实现了一种“一刀切”的效果。虽然这对授权没有帮助,但从长远来看可以节省开发时间。

0

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接