2016-08-11 245 views
1

我第一次使用的代碼創建和更新數據庫的數據庫「主人」拒絕DATABASE權限。包管理器中的我的update-database命令一直工作到昨天。但今天它不起作用,並且有這個錯誤: CREATE DATABASE權限在數據庫'master'中被拒絕。 我沒有對連接字符串和其他配置進行任何更改。 所以我嘗試更新數據庫到我的系統和我的窗戶上的另一個項目,我可以重新創建和更新這個數據庫沒有任何問題。 你能幫我解決這個錯誤嗎?EF代碼首先創建

這是項目我的連接字符串有問題:

<add name="Default" connectionString="Server=.\sqlexpress; Database=test1; User Id=sa; Password=123456" providerName="System.Data.SqlClient" /> 

這是我的項目連接字符串沒有問題:

<add name="Default" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=test2;user id=sa;password=123456" providerName="System.Data.SqlClient" /> 

回答

2

,我發現我的解決方案。

我有解決方案4項目。但是當我嘗試更新數據庫時,Web項目沒有設置爲啓動項目。所以我把這個項目設置爲啓動項目,我可以更新數據庫。

2

要創建數據庫:

打開安全文件夾,然後打開登錄文件夾,然後選擇要在其下創建數據庫的用戶帳戶。 打開帳戶的屬性,選擇服務器角色選項卡,然後選擇dbcreator複選框(sysadmin工作得更好)。 您也可以嘗試使用標準管理員帳戶sa登錄時創建數據庫。

+0

嗨親愛的。謝謝您的回答。但您可以看到,我使用'sa'用戶,並且擁有創建數據庫的所有權限。我也使用這個用戶的另一個項目,它沒有錯誤! –

+0

@masoudnoursaid所以我認爲你的問題已經解決。 –

0

要在數據庫服務器上創建數據庫,您必須授權。因此,您使用的用戶名必須有權在服務器上創建數據庫。您數據庫管理員(DBA)將授予您執行此操作的權限。

在開發環境中,你可以使用sa帳戶,該帳戶擁有所有做服務器上的任何權限。更好的是,如果您使用localdb進行開發,因爲它非常輕量且易於開發。

所以,基本上你需要允許你的情況在你的服務器上創建數據庫。希望,這可以幫助你。

+0

嗨親愛的。謝謝您的回答。但您可以看到,我使用'sa'用戶,並且擁有創建數據庫的所有權限。我也使用這個用戶的另一個項目,它沒有錯誤! –

0

您可以使用SA或者您可以添加它(youraccount)到dbcreatorsysadmin角色。

sp_dropsrvrolemember 'Youraccount','sysadmin' 

sp_dropsrvrolemember 'youraccoount','dbcreator' 
+0

嗨親愛的。謝謝您的回答。但您可以看到,我使用'sa'用戶,並且擁有創建數據庫的所有權限。我也使用這個用戶的另一個項目,它沒有錯誤! –