c# - 每个用户一个 SQL 架构

标签 c# sql-server database entity-framework

我们项目的数据库管理员已决定每个用户必须拥有 1 个 SQL Server 架构。这意味着如果系统确实有 20k 用户,那么 Sql Server 将有 20k 架构。原因是为了安全。

到目前为止,没有问题,但由于我们使用的是 Entity Framework ,并且架构是在初始化数据库上下文时在启动时设置的,因此我们无法更改架构。

我的问题分为两个:

  1. 让每个用户拥有 1 个架构是一个好方法吗?
  2. 如何使用 Entity Framework 处理这种情况?

我们在 Asp.Mvc 上使用 C# 和 .Net 4.0,以及 Sql Server 2008 R2 和 EF4.3。

最佳答案

对我来说,为每个用户使用不同的架构似乎很愚蠢,而且很麻烦。特别是如果您确实正在朝着 2 万用户的目标迈进。

我非常确定,在 SQL Server 和 ASP.NET MVC 之间,您无需执行此操作就可以实现安全的解决方案。

只是我的 2 美分:)

我认为Entity Framework Runtime Model Adapter应该能够帮助您解决有关更改架构的问题。

A set of Entity Framework connection and model adapters, allowing the arbitrary adjustment of an ObjectContext model at runtime.

This project allows a developer to adjust an Entity Framework schema at runtime when the deployment and development environments differ.

关于c# - 每个用户一个 SQL 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926086/

相关文章:

c# - 使用 Control.BeginInvoke() 调用异步方法时如何防止警告 VSTHRD101?

java - 应该在哪里进行加密——在应用程序或数据库级别?

sql-server - Silverlight 应用程序中的压力测试,它使用来自 WCF DataService 的数据,然后公开来自 SQLServer 数据库的数据

sql - T-SQL 获取最后一个日期时间记录

database - 即使应用程序崩溃,触发器是否保持原子性

c# - 强制客户端从 ASP 中的特定入口点进入站点

c# - 统一。哪个更快 : one big script with switch(ObjectType) or lot of simple scripts?

c# - 应用程序测试放置事件的最佳场所

SQL Server 查询重复列的最新值

mysql - 将 sql 文件(数据库转储)读入 MATLAB