我试图通过Robomongo连接到我的Mongodb服务器。
我已将服务器Bind_ip
上的0.0.0.0
更改为mongod.conf
我还设置了auth=true
字段。
现在,当我尝试从RoboMongo登录时,我收到了验证失败错误。
老实说我不知道用户名或密码是什么(安装Mongo后我没有设置任何用户,我不喜欢这样做,因为我使用nodeJ来查询db以及何时我尝试登录我也因为使用mongoskin而失败了。
Mongodb是否有默认用户名或密码?或者我还能做什么?
答案 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()