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

.NET Core连接字符串忽略UserId与Pwd,采用Windows身份验证登录问题

问题分析与解决

1. 账号密码被忽略的原因与解决

当连接字符串中同时存在Integrated Security=True(或等价的Trusted_Connection=True)和User Id/Password时,SQL Server驱动会强制使用Windows身份验证,直接忽略你指定的SQL账号和密码。这就是删除AdminUser这个SQL登录名后连接依然成功的原因——此时用的是当前运行程序的Windows用户身份登录SQL Server。

要使用SQL Server身份验证(账号密码登录),必须:

  • 完全移除Integrated Security和Trusted_Connection参数,或者将其设置为Integrated Security=False;
  • 确保连接字符串中仅保留User Id、Password以及必要的其他参数,示例正确连接字符串:
    Data Source=.\SQLEXPRESS;Initial Catalog=TestDB;MultipleActiveResultSets=True;User Id=AdminUser;Password=Admin;TrustServerCertificate=True
    

2. 移除Integrated Security后出现的管道错误解决

你遇到的No process is on the other end of the pipe错误,通常和SQL Server的身份验证配置、服务状态或连接协议有关,可按以下步骤排查:

  • 启用SQL Server身份验证模式:
    打开SQL Server Management Studio,右键你的服务器→属性→安全性→选择“SQL Server和Windows身份验证模式”,保存后重启SQL Server (SQLEXPRESS)服务。
  • 检查SQL Server服务状态:
    打开Windows服务管理器(运行services.msc),确认SQL Server (SQLEXPRESS)服务处于启动状态,若未启动则手动启动。
  • 修正连接字符串格式:
    之前的连接字符串里用逗号分隔Integrated Security=True,TrustServerCertificate=True是错误的,所有参数必须用分号;分隔,即使移除Integrated Security,也要确保其他参数的分隔符正确。
  • 验证实例名称与连接协议:
    确认你的SQL Server实例名确实是SQLEXPRESS(可在SSMS的服务器名称处查看);打开SQL Server配置管理器,确保SQL Server Network Configuration下的Shared Memory、TCP/IP协议已启用。
  • 检查SQL登录名权限:
    重新创建AdminUser登录名后,确保它拥有TestDB数据库的访问权限(比如映射为该数据库的用户,并赋予必要的角色权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:02:04