You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下.NET Core API连接Docker托管SQL时登录身份异常问题

问题原因

你的连接字符串同时配置了User Id/Password(SQL Server身份验证)和Trusted_Connection=True(Windows身份验证),SQL Server会优先采用Windows身份验证,因此忽略了你指定的sa账户,转而使用当前API进程的Windows身份(这里是容器内的Guest账户)尝试登录,最终因找不到匹配的登录名失败。

解决步骤
  • 修正连接字符串:移除Trusted_Connection=True,或设置为False,同时去掉User Id和Password的单引号(单引号会被解析为账户/密码的一部分,导致验证失败):
"ConnectionStrings": {
    "DefaultConnection": "Data Source=localhost,1433;Database=Cancer;User Id=sa;Password=dockersql;TrustServerCertificate=True;Encrypt=true;"
}
  • 确认Docker容器配置:确保启动SQL Server容器时已启用SQL Server身份验证,启动命令需包含ACCEPT_EULA和SA_PASSWORD环境变量:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=dockersql" -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2022-latest
  • 验证账户可用性:用SQL Server Management Studio或sqlcmd工具,通过sa账户连接localhost,1433,确认能正常访问Cancer数据库。

内容的提问来源于stack exchange,提问作者CapedCrusader01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:05:27