运行Update-Database需登录的对象是什么?如何修改为sa账号登录?
1. Update-Database要求登录的对象
Update-Database是Entity Framework/EF Core的数据库迁移命令,执行时会优先读取项目配置的数据库连接字符串,要求登录的对象为连接字符串指定的SQL Server实例,你当前场景下就是本地部署的SQL Server服务器实例。- 报错提示
Login failed for user jmurphy35是因为默认配置启用了Windows集成身份验证,会尝试用你当前操作系统的登录账号jmurphy35登录SQL Server,该Windows账号未被授予SQL Server的登录权限就会触发报错。 - 即便你已经删除了项目对应数据库,命令执行第一步仍需要先通过SQL Server实例的登录验证,再判断是否要新建数据库,因此登录失败的报错会持续出现,和数据库是否已删除无关。
2. 配置使用sa账号登录的操作步骤
- 第一步:修改项目的数据库连接字符串配置
找到对应配置文件:.NET Framework项目找web.config/app.config,.NET Core/.NET 5+项目找appsettings.json,将连接字符串改为SQL Server身份验证模式,指定sa账号和密码:
示例(appsettings.json):
示例(web.config):"ConnectionStrings": { "DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=你的项目数据库名称;User Id=sa;Password=你设置的sa账号登录密码;TrustServerCertificate=True;" }
注:如果你的本地SQL Server是默认实例,实例名可直接写<connectionStrings> <add name="DefaultConnection" connectionString="Server=localhost\SQLEXPRESS;Database=你的项目数据库名称;User ID=sa;Password=你设置的sa账号登录密码;TrustServerCertificate=True;" providerName="System.Data.SqlClient" /> </connectionStrings>localhost,无需加\SQLEXPRESS后缀。 - 第二步:确认SQL Server端配置正常
打开SQL Server Management Studio连接到本地实例,做两处检查:- 右键实例名→「属性」→「安全性」,确认「SQL Server和Windows身份验证模式」已勾选
- 进入「安全性」→「登录名」→右键「sa」→「属性」→「状态」,确认sa账号已启用,若未设置sa密码可在「常规」页设置密码
- 第三步:重新执行命令
回到Visual Studio的包管理器控制台,重新运行Update-Database即可,命令会自动读取修改后的连接字符串,用sa账号登录SQL Server执行迁移操作。
内容的提问来源于stack exchange,提问作者user3726262
相关产品推荐
相关产品推荐

