我无法远程验证mongodb。我正在运行由DigitalOcean One-Click安装程序提供的MongoDB 3.0.0,我似乎无法正确设置身份验证。
我有一个名为wbio_production的数据库。我尽可能地遵循mongodb docs教程。当我执行:
> db.auth("siteUserAdmin","MYPASSWORD")
1
> db.getUsers()
输出是:
{
"_id" : "admin.siteUserAdmin",
"user" : "siteUserAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
当我切换到wbio_production数据库并执行相同的getUsers()时:
> use wbio_production
switched to db wbio_production
> db.getUsers()
[
{
"_id" : "wbio_production.herokuUser",
"user" : "herokuUser",
"db" : "wbio_production",
"roles" : [
{
"role" : "userAdmin",
"db" : "wbio_production"
},
{
"role" : "readWrite",
"db" : "wbio_production"
}
]
}
]
但是,当我在Robomongo中填写连接表单时,它无法成功连接到数据库。授权始终失败,但它确实成功连接到数据库。
我尝试了以下使用上述用户的组合:
所有这些都结束了在heroku日志中返回的一些输出类似:
失败,错误13:“未授权查询 wbio_production.mongoid_forums_forums“
我尝试重新安装mongodb,根据不同的教程重新创建用户,并尝试不同的人解释。我花了大约5个小时来寻找解决问题的方法,现在我必须转向SO寻求建议。我确信这是一个简单的错误,我不是从文档中理解,也不是我在设置中不断遗漏的东西。
我该怎样做才能获得安全且功能强大的MongoDB服务器?谢谢!
答案 0 :(得分:1)
您需要使用绑定配置mongod,以便客户端可以远程连接。
bind_ip = 0.0.0.0
答案 1 :(得分:0)
Robomongo身份验证不适用于MongoDB 3+。我建议切换到MongoChef。 http://3t.io/mongochef/。我强烈推荐它,因为它包含了比Robomongo更多的功能。
另一件值得关注的事情......
如果您还使用Mongoid,它目前正在进行大量重写。 Mongoid 5将降落助力车https://www.mongodb.com/blog/post/announcing-ruby-driver-20-rewrite。
如果您将Mongoid 4与MongoDB 3+一起使用,请查看我的其他答案。 Rails Mongoid fails to authenticate - failed with error 13: "not authorized for query on my_db.my_collection"