2012-03-29 53 views
2

我們所擁有的項目的數據庫管理員已經決定每個用戶每個用戶必須有一個SQL Server架構。這意味着如果系統確實有20k用戶,Sql Server將有20k架構。原因是爲了安全。每個用戶一個SQL架構

到目前爲止,沒有問題,但由於我們使用實體框架,並且在初始化數據庫上下文時啓動時設置了模式,所以我們無法更改模式。

我的問題是分爲兩部分:

  1. 是否繼續讓每個用戶1架構的好方法?
  2. 如何使用實體框架處理這種情況?

我們在Asp.Mvc上使用C#與.Net 4.0一起使用Sql Server 2008 R2和EF4.3。

回答

1

在SQL Server 2005中引入的模式提供了一種將數據庫用戶與數據庫對象所有者分開的簡便方法。

現在我認爲,爲每個用戶創建一個模式可能太多,因爲您可能讓用戶具有不同的模式,但具有相同對象的所有者。

我認爲這可能是足有可能少數幾家不同的模式(劃分數據的責任或邏輯分組例如區域(和分期模式對我們的表))有一個更精細的對象所有權管理

更多在

http://msdn.microsoft.com/en-us/library/dd283095%28SQL.100%29.aspx

信息採用不同的模式與EF有關參考

SQL Server "User-Schema Separation" and Entity Framework issues

+0

謝謝您對SQL模式的輸入。我會仔細閱讀你提供的鏈接。 – 2012-03-29 13:55:11

1

對我來說,爲每個用戶使用不同的架構似乎很愚蠢,而且很麻煩。特別是如果你真的要走向20K用戶。

我很確定SQL Server和ASP.NET MVC之間可以實現一個安全的解決方案,而無需這樣做。

只是我的2美分:)

我認爲Entity Framework Runtime Model Adapter應該能夠幫助您解決有關更改架構問題。

一組實體框架連接和模型適配器,允許在運行時對ObjectContext模型進行任意調整 。

該項目允許開發人員在運行時調整實體框架的架構 當部署和開發環境不同。

+0

如果它適用於Code First(poco)方法,那麼我會盡快查看此RuntTime模型適配器。謝謝 – 2012-03-29 13:54:32

相關問題