如何阻止SQL Server强制修改密码、避免旧密码自动突然失效?
问题根因
你遇到的2-4周周期性断连、登录提示必须修改密码的问题,核心原因是应用程序使用的SQL Server身份验证账号开启了密码过期策略,Windows系统默认的本地/域密码策略通常设置密码最长有效期为30天,和你遇到的故障周期完全匹配。
永久解决方案
方案1:关闭指定账号的密码过期限制(适用于无强制密码修改合规要求的场景)
- 打开SSMS,使用具有sysadmin权限的账号连接到目标SQL Server实例
- 依次展开「安全性」-「登录名」,找到应用程序使用的SQL登录账号
- 右键点击账号选择「属性」,在「常规」标签页中取消勾选强制实施密码策略、强制密码过期两个选项
- 点击确认保存即可,后续该账号密码不会自动过期
如果需要用T-SQL执行,运行以下命令:
ALTER LOGIN [你的登录账号名称] WITH CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
注意:该操作会降低账号安全性,有等保、合规要求的生产环境不建议使用
方案2:适配密码过期规范(适用于有定期密码修改要求的合规场景)
- 建立定期运维流程,在密码到期前7-10天同步修改SQL登录账号密码,同步更新应用程序的数据库连接配置
- 若应用使用配置中心、密钥管理服务存储数据库凭证,更新密钥后可实现无感切换,无需重启应用即可恢复连接
- 可根据企业安全规范调整Windows本地/域组策略中的「密码最长有效期」参数,延长密码到期周期,降低修改频率
临时应急处理
如果当前账号已经被锁定要求重置密码,可按以下步骤快速恢复业务:
- 用sysadmin权限账号登录SSMS,找到对应登录账号直接重置密码
- 若未开启「强制密码历史」策略,可直接重置为原有密码,无需修改应用配置即可快速恢复业务连接
内容的提问来源于stack exchange,提问作者Silny ToJa
相关产品推荐
相关产品推荐

