sa 密码被锁死后怎么恢复?
sa 账户被锁定、密码遗忘且 SQL 认证全部失效时的恢复路径:用 Windows 认证登进去解锁重置,Windows 认证也不可用时的应急方案。
简短答案
sa 被锁不等于全灭:只要还能用 Windows 认证(域账户或本机管理员)连上引擎,就能解锁并重置 sa 密码。Windows 认证也失守时,才走单机模式/安全模式重置。所以平时保留一个可用的 Windows 管理员通道是底线。
现象对照
| 现象 | 可用通道 | 处理 |
|---|---|---|
| 本机/域有 Windows 管理员 | 有 | Windows 认证登 SSMS 解锁 sa |
| 只有远端、Windows 通道也没有 | 无 | 走单机模式应急 |
| 混合模式下其他 SQL 账户可用 | 部分 | 用能登的账户重置 sa |
处理步骤
- 首选:用 Windows 认证在 SSMS 连上实例,执行:
ALTER LOGIN sa ENABLE;
ALTER LOGIN sa WITH PASSWORD = '新密码需符合复杂度要求';
- 解锁后确认登录成功;密码复杂度要求(长度/字符组合)以服务器策略为准,装新版时参考 SQL Server 2025 Developer、旧版参考 SQL Server 2022 Developer 条目页。
- Windows 通道也没有:停 SQL Server 服务,用启动参数进单机模式(在「SQL Server 配置管理器」的服务属性里加
-m,仅允许本地单一连接),登录后ALTER LOGIN sa ENABLE重置,再去掉 -m 参数恢复正常模式。 - 应急结束后复盘:sa 被反复锁定通常是密码策略冲突或脚本错密码所致,给应用改用最小权限账户,sa 只留给人工应急。
进安全/单机模式前确认没有别的会话占用;该操作属于维护窗口动作,生产环境提前知会再动。
操作小结
- 有 Windows 通道直接解锁重置,最快。
- 没有通道走 -m 单机模式应急,完事务必去掉参数。
- 事后把应用切到最小权限账户,降低 sa 使用频率。