MongoDB的新手,试图找出权限的工作方式。
我的PHP代码连接到Mongo就好了:
$mongo = new MongoClient('mongodb://admin:password@localhost');
return $mongo->selectDB('admin');
我也可以从shell中做到这一点:
# mongo -u admin -p password admin
MongoDB shell version: 3.0.5
connecting to: admin
但是,尝试使用相同的凭据(在本例中为Windows)从其他远程主机连接到Mongo会导致:
无法使用MONGODB-CR机制对admin @ admin进行身份验证:用户文档中缺少AuthenticationFailed MONGODB-CR凭据
我正在尝试配置 Robomongo 管理工具来管理MongoDB实例。
显然,我通过更新IP绑定指令允许连接到Mongo服务器。
它看起来像" admin"不允许用户从localhost以外的主机连接--MySQL具有完全相同的参数。
问题:我如何允许 admin 用户从框外连接?
谢谢!
答案 0 :(得分:0)
所以这就是我必须做的事情。
删除所有现有管理员用户。
要配置身份验证机制,请在没有授权的情况下启动mongodb:“enabled”。然后:
mongo admin
来自mongo shell:
var schema = db.system.version.findOne({"_id" : "authSchema"})
schema.currentVersion = 3
db.system.version.save(schema)
db.createUser(
{
user: "admin",
pwd: "password",
roles: [ "root" ]
}
)
并使用授权重新启动:“已启用”。