我們正在將部署一個簡單的ASP.NET MVC應用程序部署到我們的登臺服務器上,當EntityFramework嘗試遷移現有數據庫時,我們遇到以下錯誤。EntityFramework遷移嘗試創建現有數據庫
CREATE DATABASE permission denied in database 'master'.
的情況如下:
- 這是第一次遷移運行。
- 數據庫已經存在(它實際上是一個Umbraco數據庫)。
它會出現在下面的方法(從的EntityFramework)返回false,當它顯然應該返回true:
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists()
數據庫初始化具有下面的代碼:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());
自動遷移已關閉,因爲我們正在使用基於代碼的遷移。
connectionstring指向正確的數據庫,並且用戶對該數據庫具有db_owner權限。用戶無權訪問服務器上的其他表。
這是常見問題嗎?有沒有人知道這個解決方案?
Thnx!
可以嘗試將它設置爲不主因爲這是系統數據庫的名稱,並可能導致問題的 –
可能重複執行查詢[CREATE DATABASE permission denied in database'master'Entity Framework Migration](http://stackoverflow.com/questions/11814762/create-database-permission-denied-in-database-master-entity-framework-migratio) –
數據庫連接字符串中的名稱不是主控(因爲這確實是一個系統數據庫)。這是一個現有的數據庫,用戶只擁有該數據庫的權限。 EntityFramework嘗試創建數據庫,因爲EnsureDatabaseExists報告沒有數據庫。之後,EF嘗試創建數據庫,但用戶沒有權限。但是,這不是問題。 EF未能檢測到數據庫實際上因爲某種原因而存在 –