通过RoboMongo进行MongoDB远程连接

时间:2015-01-06 18:38:45

标签: mongodb robo3t

我试图通过Robomongo连接到我的Mongodb服务器。

我已将服务器Bind_ip上的0.0.0.0更改为mongod.conf 我还设置了auth=true字段。

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

老实说我不知道​​用户名或密码是什么(安装Mongo后我没有设置任何用户,我不喜欢这样做,因为我使用nodeJ来查询db以及何时我尝试登录我也因为使用mongoskin而失败了。

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

2 个答案:

答案 0 :(得分:4)

  

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

没有MongoDB创建的默认用户,但是如果您刚刚启用了身份验证但没有created your first user yet(应该是用户管理员),那么您必须通过localhost连接以设置初始值用户。默认情况下启用localhost exception以专门允许创建启用了auth的第一个用户。没有有效的用户凭证,远程连接将无法进行身份验证。

在您拥有created the required user(s)之后,您应该可以使用Robomongo或其他界面(例如mongo shell或您的mongoskin应用程序)使用这些凭据远程登录。

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

答案 1 :(得分: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" }
      ]
    }
)

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

查看角色db.getRoles()