SQL Server 默认密码策略是什么
SQL Server 登录的默认密码策略与 Windows 域策略的关系:密码长度/复杂度/历史记录由谁定、怎么改、sa 账号受不受默认策略影响。
结论先行
SQL 认证登录的密码策略跟随域策略:引擎所在机器在域里时,密码长度、复杂度、历史记录、过期周期都按域 GPO 来;独立工作站上按本地账户策略来。「默认」没有一个引擎自定的固定数值。sa 是引擎内置账号,其密码强度规则以引擎侧策略为准,且 sa 常被单独要求更高强度——具体长度/复杂度要求以域策略实际下发值为准。
策略由谁定
| 引擎所在环境 | 密码策略来源 |
|---|---|
| 域成员 | 域 GPO(可被引擎所在 OU 的细化策略覆盖) |
| 独立工作站 | 本地「密码策略」组策略(min 长度、复杂度、最大/最小使用期等) |
| 云端托管引擎 | 以引擎提供的策略说明为准 |
怎么查
# 查本机生效的密码策略(域环境即域策略)
# 在 PowerShell 管理员模式执行
# 查看 min 密码长度、复杂度、最大使用期等
图形方式:secpol.msc(本地策略)或组策略管理控制台(域策略)→ 密码策略。
怎么改
- 域环境:改域 GPO 后推送到引擎所在 OU,别为了一个引擎单独设一套策略(管理成本大)。
- 独立工作站:改本地密码策略,引擎侧无需重启。
- 登录的个体例外:新建/修改 SQL 登录时可以单独设「密码策略/过期策略」开关(SSMS 登录属性里的「密码强制/过期」勾选项),用于「sa 永不过期」这类例外场景。
把密码策略做宽(放宽)属于安全弱化操作,改动前评估影响面,站点不代行该决策。
常见误区
- 「sa 密码有固定复杂度要求」→ 错,sa 也跟随域/本地策略。
- 「改引擎设置就能改密码长度」→ 错,长度/复杂度归策略管。
- 「改完策略历史密码立刻失效」→ 取决于「密码历史记录」长度,按策略值执行。
引擎侧账号管理在 SSMS 管理工具条目 中操作;SQL Server 2022 Developer、SQL Server 2025 Developer 条目环境的密码策略机制一致。