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

Visual C#使用SQL Server身份认证连接数据库失败求助

问题分析与解决建议

你的问题根源很明确——连接字符串同时混合了两种认证模式的参数,导致SQL Server优先采用Windows身份认证,完全忽略了你指定的SQL Server账号密码,所以才会触发Windows关联账户登录失败的错误。

核心问题拆解

你写的连接字符串里同时包含两组互斥的配置:

  • Integrated Security = SSPI:这是启用Windows身份认证的参数,SQL Server会自动用当前运行程序的Windows账户去登录
  • User ID = myID; Password = myPassword:这是SQL Server身份认证的专属参数

SQL Server会优先识别Integrated Security的配置,所以你指定的SQL账号密码根本没生效,自然会报Windows账户登录失败的错误。

直接解决方法

只保留SQL Server身份认证的参数,删除Windows认证相关配置,修改后的连接字符串如下:

String connStr = @"Data Source = myServerName; Initial Catalog = PMSystem; User ID = myID; Password = myPassword;";

(注意:你原字符串里的mySeverName多打了一个e,应该是myServerName;如果是本地SQL Server实例,可能需要写成localhost或者.\SQLEXPRESS这类格式,别忽略这个拼写细节)

额外检查项(针对小型草稿项目)

为了确保连接顺利,建议你再确认这几点:

  • 打开SQL Server Management Studio,右键你的服务器 → 属性 → 安全性,确认服务器身份验证模式是SQL Server和Windows身份验证模式,如果之前是仅Windows模式,修改后需要重启SQL Server服务
  • 确认myID这个账号在SQL Server中已创建,并且拥有PMSystem数据库的访问权限(比如给它分配db_datareader角色,足够满足你的查询需求)
  • 核对密码是否输入正确,避免大小写或者特殊字符的拼写错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:45:24