首页 > 解决方案 > Mongodb 未在 localhost 上进行身份验证或连接经过身份验证的 mongodb compas

问题描述

系统

嗨,我在 ubuntu 20.14 上运行 mongodb。我用systemctl运行 mongodb

我做了什么

我试图通过添加管理员用户并启用身份验证来使其更安全。我已经多次重新启动服务。

配置文件:

security:
  authorization: enabled

我如何创建用户:

use admin
db.createUser({
    user: "username",
    pwd: "123456",
    roles:["root"]
})

问题

我仍然能够通过 mongodb 指南针连接而无需任何身份验证???即使我启用了身份验证,我还能做所有事情吗?我无法使用这些网址进行身份验证登录:

mongodb://username:password@localhost:27017/
mongodb://username:password@localhost:27017?authSource=admin

我确定配置文件正在加载,因为身份验证在控制台中工作,我可以在 mongod.log 中看到正确的配置加载

标签: mongodb

解决方案


就是这个:

mongodb://username:password@localhost:27017?authSource=admin

另请参阅:尝试保存到 mongodb 时身份验证失败

是的,即使没有身份验证,您也可以在任何情况下连接到 Mongo 数据库。但是,除了 , , 等无害的命令之外db.help()db.version()db.getMongo()无法执行任何操作。

您可以跳过参数enableLocalhostAuthBypass。仅当 MongoDB 实例中没有创建用户时,localhost 异常才适用。


推荐阅读