簡體   English   中英

數據庫'master'中的EF Code First CREATE DATABASE權限被拒絕

[英]EF Code First CREATE DATABASE permission denied in database 'master'

我首先使用代碼來創建和更新數據庫。 我在程序包管理器中的update-database命令有效到昨天。 但是今天它不起作用,並出現以下錯誤:數據庫'master'中的CREATE DATABASE權限被拒絕。 我對連接字符串和其他配置沒有任何更改。 因此,我嘗試將數據庫更新到系統和Windows上的另一個項目,並且可以毫無問題地重新創建和更新該數據庫。 您可以幫我解決此錯誤嗎?

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

<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" />

要創建數據庫:

打開“安全性”文件夾,然后打開“登錄名”文件夾,然后選擇要用於創建數據庫的用戶帳戶。 打開帳戶的“屬性”,選擇“服務器角色”選項卡,然后選擇“ dbcreator”復選框(sysadmin的效果更好)。 您也可以嘗試使用標准管理員帳戶sa登錄后創建數據庫。

我找到了解決方案。

我在解決方案中有4個項目。 但是當我嘗試更新數據庫時,Web項目未設置為啟動項目。 所以我將這個項目設置為啟動項目,然后可以更新數據庫。

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

在開發環境中,您可以使用sa帳戶,該帳戶具有在服務器上執行任何操作的所有權限。 更好的是,如果您使用localdb進行開發,因為它重量輕且對開發人員友好。

因此,基本上,您需要獲得許可才能在服務器中創建數據庫。 希望這對您有所幫助。

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

sp_dropsrvrolemember 'Youraccount','sysadmin'

要么

sp_dropsrvrolemember 'youraccoount','dbcreator'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM