我與實體框架代碼優先和SQL Server 2008開發實體框架創建沒有「數據庫創建」權限的表?
我想支持這個共同的安裝方案:
- 數據庫管理員手動創建一個新的數據庫,並只具有訪問新用戶該數據庫(
database_owner
許可) - 我的應用程序配置與數據庫的細節和新用戶的登錄
- 我的應用程序使用實體框架AUTOMATICA LLY初始化數據庫(創建表,視圖等)
然而,當我試圖讓實體框架初始化數據庫:
context.Database.Create();
我會得到一個異常,因爲這個方法嘗試創建數據庫,而不僅僅是在數據庫中創建表,視圖等。
如何獲得Entity Framework初始化數據庫的用戶沒有「創建數據庫」權限,使用已經爲其創建的數據庫?
你的問題是混亂的。如果您只希望用戶擁有創建表權限,那麼爲什麼您希望他們能夠創建數據庫?要讓他們首先創建數據庫,您需要在SQL Server登錄級別給予他們權限,而不是數據庫用戶級別。您是否已將任何角色或權限應用於SQL Server登錄名?是否真的打算授予他們創建數據庫的權限?你如何確保他們只創建一個?您想在服務器上放置多少個數據庫?通常你創建一個數據庫,然後讓用戶在該數據庫中創建對象。 –
簡而言之:**不**。如果您沒有「創建數據庫」權限 - 您無法在任何情況下**創建數據庫 - 這就是權限的全部要點...... –
此問題與數據庫安全無關。這是關於實體框架惱人的堅持給予創建數據庫權限,即使你想要做的就是創建表。我已經提交了一個編輯,希望能夠澄清這個問題。 –