2015-08-15 49 views
0

MongoDB的新手,试图弄清楚权限是如何工作的。从远程主机连接到MongoDB时验证错误

我的PHP代码连接到蒙戈就好:

# mongo -u admin -p password admin 
MongoDB shell version: 3.0.5 
connecting to: admin 

然而,尝试使用相同的来自其他远程主机连接到蒙戈:

$mongo = new MongoClient('mongodb://admin:[email protected]'); 
return $mongo->selectDB('admin'); 

我还可以从外壳做到这一点凭据(Windows,在这种情况下)的结果为:

无法通过机制验证admin @ admin MONGODB-CR:Authent icationFailed MongoDB的-CR凭证的用户文档

在缺少我想配置Robomongo管理工具来管理MongoDB实例。

显然,我已经允许通过更新IP绑定指令来连接到Mongo服务器。

看起来像“admin”用户不允许从本地主机以外的主机连接 - MySQL具有完全相同的参数。

问题:我如何允许admin用户从盒子外面连接?

谢谢!

回答

0

所以这就是我不得不做的。

  1. 删除所有现有的管理员用户。

  2. 要配置认证机制,请启动mongodb,无需授权:“已启用”。然后:

蒙戈管理

从蒙戈外壳:

var schema = db.system.version.findOne({"_id" : "authSchema"}) 
schema.currentVersion = 3 
db.system.version.save(schema) 
db.createUser(
{ 
    user: "admin", 
    pwd: "password", 
    roles: [ "root" ] 
} 

,并授权重新启动: “启用”。

相关问题