如何解决C#客户端连接SQL Server时‘sa登录失败’问题
排查SQL Server "Login failed for user 'sa'" 连接错误的步骤
检查SQL Server身份验证模式
打开SQL Server Management Studio(SSMS),连接到目标数据库实例后,右键实例名称→属性→安全性,确认已勾选SQL Server和Windows身份验证模式。如果是仅Windows身份验证模式,sa账号无法登录,修改后需重启SQL Server服务生效。确认sa账号状态
在SSMS的【安全性】→【登录名】中找到sa账号,右键→属性→状态,检查【登录】选项是否为启用状态,若禁用则改为启用。配置SQL Server远程连接权限
- 在SSMS中右键实例名称→属性→连接,勾选允许远程连接到此服务器
- 打开SQL Server配置管理器,找到SQL Server网络配置→对应实例的协议,确保TCP/IP处于启用状态
- 双击TCP/IP协议→切换到IP地址标签,拉至底部IPAll区域,确认TCP端口为1433(需与连接字符串中的端口一致)
验证客户端与服务器的网络连通性
在客户端PC打开命令提示符,执行telnet 10.0.255.255 1433(若未安装telnet,先运行pkgmgr /iu:"TelnetClient"安装)。如果连接失败,说明存在网络问题:- 检查服务器防火墙是否开放1433端口
- 确认客户端与服务器处于同一网络,或路由/网关设置正确,能正常访问服务器IP
简化连接字符串测试
先移除Network Library=DBMSSOCN参数,现代SQL Server连接通常无需该配置,简化后的连接字符串示例:public static string connString = @"Data Source=10.0.255.255,1433;Initial Catalog=InventoryProjects;User Id=sa;Password=password";若密码包含特殊字符,需用引号包裹,比如
Password="p@ssw0rd"用SSMS直接测试登录
在客户端PC打开SSMS,尝试用sa账号、密码以及10.0.255.255,1433的服务器地址登录。如果SSMS也登录失败,说明问题不在C#代码,而是数据库或网络配置;如果SSMS能登录,再检查C#代码中连接字符串的拼写(比如密码大小写、数据库名称是否正确)
内容的提问来源于stack exchange,提问作者Sabaresan D
相关产品推荐
相关产品推荐

