即使我在所使用的连接字符串中指定了其他用户,我的ASP.Net Core应用程序仍尝试使用“默认”用户名登录数据库。那就是我不断收到同样的异常:
在处理请求时发生未处理的异常。 SqlException:无法打开登录请求的数据库“ testDB”。登录失败。 用户'DESKTOP-555DDD \ skorejen'登录失败。
即使我使用的连接字符串定义了不同的用户名。
如何解决该问题,以便我的应用使用指定用户名的连接字符串登录?
连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=testDB;User Id=myusername;Trusted_Connection=True;"
},
ASP.Net Core Startup.cs文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<OrderContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
答案 0 :(得分:1)
您将需要启用sql authentication mode
,将用户添加到sql服务器登录名并在连接字符串中指定密码。
示例连接字符串:
Server = myServerAddress;数据库= myDataBase;用户ID = myUsername; 密码= myPassword;
(source)
启用sql authentication mode
:
答案 1 :(得分:1)
您的ConnectionStrings
必须采用以下格式:
具有凭据(sql身份验证):
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress; Database=myDataBase; User Id=myUsername; password=myPassword; Trusted_Connection=false; MultipleActiveResultSets=true;"
}
没有凭据(Windows身份验证):
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress; Database=myDataBase; Trusted_Connection=True; MultipleActiveResultSets=true"
}