SQL 密码安全:使用 Windows 域策略与容器化数据库管理
1. 使用 Windows 域策略强制密码长度
从 Microsoft SQL Server 2005 开始,微软在产品中引入了新的密码安全级别,该版本首次支持使用域策略来确保 SQL 身份验证账户的密码足够长且足够强,以满足系统管理员设定的企业标准。默认情况下,SQL Server 实例中创建的所有 SQL 身份验证账户都必须符合域密码安全策略,必要时可通过编辑 SQL 身份验证账户来移除这些限制。
在 Microsoft SQL Server 中,每个 SQL 身份验证登录有两个可应用的设置:
- “Enforce password policy”(强制密码策略):该设置告知 SQL Server 引擎确保密码满足域的复杂性要求,并且在域策略定义的特定天数内未被使用过。
- “Enforce password expiration”(强制密码过期):该设置告知 SQL Server,SQL 身份验证登录的密码应根据域设置过期。
“User must change password at next login”(用户下次登录时必须更改密码)选项,在登录密码手动重置且“Enforce password policy”设置为启用时才可用。
允许 SQL Server 确保密码符合域策略具有显著优势,特别是在审计方面。以前,审计员询问 SQL 身份验证密码是否符合企业标准时,可能需要手动检查每个密码或联系用户询问,而现在通过简单的 SQL 查询即可验证信息。
示例 3.7 展示了如何查询 sys.sql_logins
目录视图,以