【问题标题】:Authentication error while connecting to MongoDB from remote host从远程主机连接到 MongoDB 时出现身份验证错误
【发布时间】:2015-08-15 15:33:00
【问题描述】:

刚接触 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 用户从框外连接?

谢谢!

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    所以这就是我必须做的。

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

    2. 要配置身份验证机制,请在没有授权的情况下启动 mongodb:“启用”。那么:

    mongo 管理员

    来自 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" ]
    }
    

    )

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

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 1970-01-01
      • 2016-01-17
      • 2017-06-18
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多