[英]EF Code First - {“CREATE DATABASE permission denied in database 'master'.”}
[英]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)添加到dbcreator
或sysadmin
角色。
sp_dropsrvrolemember 'Youraccount','sysadmin'
要么
sp_dropsrvrolemember 'youraccoount','dbcreator'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.