如何设置密码复杂度策略以约束MongoDB用户的密码强度
启用 pwdPolicy 前必须开启 --auth 或 security.authorization: enabled,否则策略被忽略;setSecuritySettings 仅对新用户或手动改密生效;仅 minLength 和 characterClassCount 有效,其他字段未实现。启用 pwdPolicy 前必须开启访问控制不启动 --auth 或未在配置文件中设置 security.authorization: enabled,MongoDB 会直接忽略所有密码策略配置,连日志都不会报错——看起来配置生效了,实际形同虚设。启动时加参数:mongod --auth --config /etc/mongod.conf配置文件里必须有:security: { authorization: enabled }改完配置要重启服务,mongod 不支持热加载策略setSecuritySettings 只对新用户生效,旧用户密码不强制重置执行 db.adminCommand({ setSecuritySettings: { pwdPolicy: { ... } } }) 后,已存在的用户(比如 admin 或 myapp)仍可用弱密码登录,策略只约束后续创建或修改密码的操作。新建用户自动受控:db.createUser({ user: "alice", pwd: "123", roles: [...] }) 会直接报错 errmsg: "Password does not meet the minimum complexity requirements"已有用户需手动改密:db.changeUserPassword("alice", "NewPass@2024") 才触发校验不支持批量刷新旧用户密码,得一个一个调 changeUserPassword密码策略参数不是全都能配,minLength 和 characterClassCount 是唯二真正起作用的字段MongoDB 从 4.0 开始支持 pwdPolicy,但文档里写的 maxConsecutiveCharacters、maxRepetitions 等字段目前(v6.0/v7.0)压根没实现,设了也白设,源码里是 // TODO: implement 状态。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
