MongoDB 4.2.15认证失败求助:配置用户后无法登录
MongoDB 4.2.15认证失败排查与解决步骤
确认认证的库上下文:MongoDB用户是库级绑定的,创建在哪个库就必须先切换到对应库再执行认证:
- 对于admin库创建的
test_admin,先执行use admin,再执行db.auth("test_admin","admin") - 对于birthday_parties库创建的
test_admin2,先执行use birthday_parties,再执行db.auth("test_admin2","yourPassword")
- 对于admin库创建的
检查authorization配置有效性:
- 确认配置文件中
authorization参数值为字符串enabled(不是布尔值true),配置项示例:security: authorization: enabled - 重启MongoDB时必须指定正确的配置文件路径,比如:
mongod --config /etc/mongod.conf - 重启后执行
db.getMongo().getCmdLineOpts(),查看返回结果中parsed.security.authorization是否为enabled,确认配置已加载
- 确认配置文件中
验证用户创建的正确性:
临时关闭认证(注释配置文件中authorization项,重启实例),执行以下命令检查用户信息:use admin; db.system.users.find({user:"test_admin"}).pretty();确认返回结果中
roles数组里的db为admin,role为dbAdminAnyDatabase;同理检查test_admin2的roles对应birthday_parties库的readWrite角色排查密码问题:
- MongoDB密码区分大小写,检查输入的密码是否与创建时完全一致
- 尝试重置密码排除输入错误:
// 针对admin库的test_admin use admin; db.changeUserPassword("test_admin", "new_secure_password"); // 针对birthday_parties库的test_admin2 use birthday_parties; db.changeUserPassword("test_admin2", "new_secure_password2");
内容的提问来源于stack exchange,提问作者SVill
相关产品推荐
相关产品推荐

