sa密码修改后无法登录,90%因未启用混合模式、改完未重启服务或误用windows身份验证登录;须先以windows身份验证连入,确认并启用混合模式、启用sa账户、设置强密码,最后重启sql server服务。

能用 Windows 身份验证登录,就不用折腾单用户模式或重装——sa 密码改不了,90% 是因为没开混合模式,或者改完没重启服务。
必须先确认服务器身份验证模式是“混合模式”
SQL Server 2008 R2 默认可能是 Windows 身份验证模式,这时 sa 账户根本无法启用,输密码也白搭。
- 在 SSMS 中右键实例 → 属性 → 左侧选 安全性
- 检查右侧 服务器身份验证 是否为 SQL Server 和 Windows 身份验证模式
- 如果不是,勾选它 → 点 确定 → 弹出提示说“需要重启服务”,别点忽略
- 关掉 SSMS,否则后续操作可能不生效
用 Windows 身份验证登录后修改 sa 密码
只有具备 sysadmin 权限的 Windows 登录用户(比如本机管理员)才能进 SSMS 改 sa。不能用 SQL 身份验证登录去改自己。
- 重新打开 SSMS,选 Windows 身份验证 连接
- 展开 安全性 → 登录名 → 找到
sa,右键 → 属性 - 左侧选 常规,在 密码 和 确认密码 栏填新密码
- 左侧选 状态,确保 登录 设置为 启用
- 点 确定 保存,不要直接关窗口——先执行下一步
改完必须重启 SQL Server 服务
很多人卡在这步:改了密码、点了确定、马上用 sa 登录失败。不是密码错了,是服务没重载配置。
- 打开 Windows 服务管理器(
services.msc) - 找到对应实例的服务,例如:
SQL Server (MSSQLSERVER)(默认实例)或SQL Server (SQLEXPRESS)(命名实例) - 右键 → 重新启动(不是“启动”,也不是关 SSMS 再开)
- 重启完成后,再用
sa+ 新密码尝试连接
命令行方式(sqlcmd)快速重置,适合脚本化或远程场景
如果图形界面打不开,或者想批量处理,sqlcmd 是更底层、更可靠的路径,但前提是已用 Windows 身份验证连上。
- 以管理员身份运行命令提示符
- 执行:
sqlcmd -S .\实例名 -E(-E表示 Windows 身份验证;默认实例可省略.\实例名) - 输入:
ALTER LOGIN sa WITH PASSWORD = '新密码';回车 - 如果
sa被禁用,补一句:ALTER LOGIN sa ENABLE; - 输入
GO执行,然后EXIT - 同样要重启服务才生效
混合模式没开、服务没重启、用错身份验证方式登录——这三个点踩中任意一个,sa 密码看起来“改了但登不上”。别反复试密码,先查这三项。











