mongodb – 为mongod启用auth时无法访问http:// localhost:28017

当为mongod启用auth时,我无法访问
http://localhost:28017;即使我填写了正确的用户名/密码,它也会弹出用户名/密码.我启用了HTTP& REST在初始参数文件中.

我使用的YAML格式参数文件:

net:
port: 27017
http:
 enabled: true
 RESTInterfaceEnabled: true
 security:
 authorization: enabled

但是当我禁用mongod授权时,我可以成功登录http://localhost:28017而无需填写用户名/密码.

什么原因?它是否在3.0的授权下不支持HTTP控制台?我的版本是3.0.2.

最佳答案 首先让我添加标准警告 – 不要在生产中使用内置的HTTP / REST接口,仅用于测试,应该在生产系统上禁用它.

关于问题:MongoDB 3.0现在defaults使用SCRAM-SHA-1进行基于登录的质询响应(用户名和密码),我假设您在3.0中从头创建了用户(如果他们是从2.6导入的,他们会工作,除非你做了架构升级).您失败的原因是HTTP / REST接口does not support使用3.0中的新凭据机制登录,您必须使用旧机制.

基本上,如果要使用经过身份验证的REST接口,则需要拥有旧版MONGODB-CR凭据的用户.创建您要使用的用户,然后使用changeUserPassword命令切换到MONGODB-CR机制.类似于以下内容:

db.changeUserPassword("restuser", "SOh3TbYhx8ypJPxm", "MONGODB-CR")
点赞