【问题标题】:CREATE DATABASE permission denied in database 'master'. EF Code-first asp.net Core 3.1数据库“master”中的 CREATE DATABASE 权限被拒绝。 EF 代码优先 asp.net Core 3.1
【发布时间】:2020-06-19 08:51:34
【问题描述】:

我之前多次看到这个问题被问到,但他们总是针对通过 App.config 文件添加连接字符串的旧方法。

我正在使用一个 asp.net Core 3.1 Web 应用程序,它使用 appsettings.json 创建连接字符串。如下:

"ConnectionStrings": {
    "DefaultConnection": "Server=WS-NAME;Database=BookListRazor;User ID=sa;Password=****;Trusted_Connection=True;MultipleActiveResultSets=True"
  },

我已尝试使用此 SSMS 登录,但我也尝试创建一个不是 sa 的新登录。这两个用户都启用了 dbcreator、public 和 sysadmin 服务器角色。

当我尝试使用 SSMS 手动创建数据库时,它工作得非常好。而当我使用相同的登录详细信息作为连接字符串的一部分时,会返回错误

CREATE DATABASE permission denied in database 'master'.

我尝试了许多不同的建议作为解决方案的方法,但似乎都没有奏效。如果你们有任何建议,我将不胜感激。

提前谢谢你!

【问题讨论】:

  • Asp.NET Core 3.1 中是否有 WebForm 应用类型?
  • @Kaj 我的意思是网络应用。
  • 所以您的登录凭据在 SSMS 中有效,但在 Asp.net 应用程序中无效?你试过以管理员身份运行 VS 吗?
  • @Kaj 是的,这是正确的,我目前正在以管理员身份运行 SSMS 和 VS。

标签: c# asp.net entity-framework asp.net-core ef-code-first


【解决方案1】:

这个User ID=sa;Password=****;Trusted_Connection=True 是错误的。在传递用户 ID 和密码时,您将 Trusted_Connection 设置为 False。否则,客户端程序的 Windows 身份将用于连接到 SQL Server

来自文档:

如果指定了用户 ID 和密码并设置了集成安全性 为 true,用户 ID 和密码将被忽略并集成 将使用安全性。

SqlConnection.ConnectionString

【讨论】:

  • 你是绝对的英雄!我不敢相信我错过了。非常感谢大卫!你真的把我从如此紧张的一天中拯救了出来 :) 现在一切正常!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 2011-08-03
  • 1970-01-01
  • 2012-08-09
  • 2016-12-17
  • 2023-03-05
相关资源
最近更新 更多