6

我正在尝试通过 Robomongo 连接到我的 Mongodb 服务器。

我已将服务器更改为Bind_ip我 还设置了该字段。0.0.0.0mongod.confauth=true

现在,当我尝试从 RoboMongo 登录时,我收到了身份验证失败错误。

老实说,我不知道用户名或密码是什么(我在安装 Mongo 后没有设置任何用户,我不喜欢这样做,因为我使用 nodeJs 来查询数据库,当我尝试登录时我'我获得身份验证也失败了[这就是 mongoskin])

Mongodb 是否有默认用户名或密码?或者我还能做什么?

4

2 回答 2

4

Mongodb 是否有默认用户名或密码?

MongoDB 没有创建默认用户,但是如果您刚刚启用身份验证并且尚未创建第一个用户(应该是用户管理员),那么您必须通过 localhost 连接以设置初始用户。默认情况下启用localhost 异常,以专门允许创建启用身份验证的第一个用户。如果没有有效的用户凭据,远程连接将无法进行身份验证。

创建所需用户后,您应该能够使用 Robomongo 或其他界面(如mongoshell 或您的 mongoskin 应用程序)使用这些凭据远程登录。

如果您不想使用 localhost 异常,另一种方法是在禁用身份验证的情况下启动 MongoDB 服务器,远程添加所需的用户,然后在启用身份验证的情况下重新启动服务器。

于 2015-01-07T06:52:34.697 回答
2

所有你需要的是在文档中: http: //docs.mongodb.org/manual/tutorial/enable-authentication/

创建管理员用户(角色):

use admin
db.createUser(
  {
    user: "siteUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

添加普通用户(读写角色):

use reporting
db.createUser(
    {
      user: "reportsUser",
      pwd: "12345678",
      roles: [
         { role: "read", db: "reporting" },
         { role: "read", db: "products" },
         { role: "read", db: "sales" },
         { role: "readWrite", db: "accounts" }
      ]
    }
)

要添加管理员,您可能需要使用 启动 mongoauth=false,添加 adminuser,然后重新启用auth=true

查看角色db.getRoles()

于 2015-01-06T18:41:02.253 回答