為什麼dotnet不能為SQL Server Express創建數據庫?

asp.net-core asp.net-mvc entity-framework-core sql-server-express

我已經瀏覽了這個ASP.Net MVC核心教程: https//docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql 。我可以使用dotnet遷移在appsettings.json文件中使用此連接字符串針對localDb創建數據庫:

{
  "ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MvcMovie-3005e0f3-42f4-4163-94cc-f794a05e8b91;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

現在我想將它指向SQL Server Express,看看我是否可以在那里工作和SSMS。

所以現在我在appsettings.json文件中使用它:

{
  "ConnectionStrings": {
   "SqlExpressConnection": "Server=.\\SQLEXPRESS;Database=MvcMovieDb1;Integrated Security=True;MultipleActiveResultSets=true"
  }

在StartUp.ConfigureServices()中,更改:

services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("SqlExpressConnection")));

然後在命令提示符下運行:

dotnet ef數據庫更新

但現在我得到:“數據庫'master'中的CREATE DATABASE權限被拒絕。

如何授予ef創建數據庫的權限?如果我使用CREATE權限創建登錄名,是否有dotnet ef可以使用的登錄/密碼參數?


好吧,似乎我沒有像我想的那樣擁有數據庫權限。

我只是做了一個測試,從SSMS中添加一個數據庫,我似乎沒有CREATE權限“在數據庫'master'中創建數據庫權限被拒絕。

我在我的計算機管理員登錄帳戶下的SSMS中。我使用Windows身份驗證啟動SSMS。因此,頂部連接節點如下所示:FullComputerName \ SQLExpress(SQL Server 11.0.6020 - CompanyDomainName \ Samuel)。

Windows身份驗證登錄的格式為:CompanyDomainName \ Samuel。我在計算機管理器 - 用戶下看不到我的CompanyDomainName \ Samuel帳戶。不確定我是如何使用此帳戶登錄計算機的。如何在安全登錄下添加此帳戶作為登錄?

熱門答案

您的本地Windows帳戶CompanyDomainName\Samuel是SQLExpress管理員。這意味著當您登錄Windows時,您是SQLExpress的管理員。

Integrated security=true用於通過Windows帳戶連接到SQL Server,但它不起作用,因為IIS(或Kestrel或任何Web服務器)將使用不同的Windows用戶帳戶。

您有兩種選擇:

  • Security/Logins添加Web服務器的Windows用戶帳戶,並檢查Windows authentication 在此輸入圖像描述

  • 或使用SQL Server authentication創建新登錄名,並更新連接字符串以使用它
    "Server=.\\SQLEXPRESS;Database=MvcMovieDb1;User Id=dbUserName;Password=thePassword"

(注意:如果您選擇最後一個解決方案,如果您在源代碼中存儲密碼,則應注意潛在的安全問題。 閱讀此頁面以獲取更多信息



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因