【问题标题】:How do I add an admin user to Mongo in 2.6?如何在 2.6 中向 Mongo 添加管理员用户?
【发布时间】:2014-04-11 04:15:03
【问题描述】:

我从 2.4 升级到 2.6,但身份验证失败。 This tutorial 看起来很简单,但我一直被锁定在我自己的数据库之外。我的情况很简单,我有一个 Mongo 服务器,需要一个用户/密码组合来连接。

首先,我通过前面提到的 localhost 异常进行连接。然后我按照建议创建管理员用户:

use admin
db.createUser(
  {
    user: "myadmin",
    pwd: "mysecret",
    roles:
    [
      {
        role: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)

现在是添加新用户的时候了,为了检查自己的理智,我退出了 shell。现在当我输入“mongo”时它失败了。这曾经有效,但没关系,它没有看到用户名密码,我猜 localhost 异常不再存在,所以我按照here 概述的说明进行操作:

mongo --port 27017 -u myadmin -p mysecret --authenticationDatabase admin

我得到:

MongoDB shell version: 2.6.0
connecting to: 127.0.0.1:27017/test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
>

关于如何做的任何想法:

  1. 设置 Mongo 2.6,这样我就可以轻松进出管理数据库的 shell(我认为这是“系统用户管理员”)

  2. 允许来自远程客户端的用户进行连接? (只是 mongo 方面,不需要 iptables 的帮助......)

谢谢!

【问题讨论】:

  • 我也有同样的问题... 非常令人沮丧的是,即使您仔细按照教程进行操作,它也会失败。 MongoDB 需要认真关注其文档。

标签: mongodb database-administration


【解决方案1】:

显然“系统用户管理员”是不够的。创建根用户:

> db.createUser({user:"someadmin",pwd:"secret", roles:[{role:"root",db:"admin"}]})

然后添加你的数据库用户:

> use some_db
> db.createUser(
    {
      user: "mongouser",
      pwd: "someothersecret",
      roles: ["readWrite"]
    }
)

更多详情请访问this gist。欢迎评论要点和更好的答案 - 我不是系统管理员

【讨论】:

【解决方案2】:

1) 您分配给管理员用户 userAdminAnyDatabase 的角色没有无限权限。它只是一个允许在任何数据库上创建和管理用户的角色。显然,默认情况下,它被限制执行某些与管理数据库用户没有直接关系的命令(例如从日志中获取启动警告,查询服务器状态等)。

您可以按照 Tony 的建议使用“root”角色。如果您打算使用 root 帐户进行设置和管理,然后只使用一些基本的读/写特权帐户与数据库通信,那么这可能是最有意义的。

2) 通常,在客户端连接只需要在从客户端代码连接后调用 db.authenticate() 函数。根据您为客户端使用的驱动程序/语言,有不同的方法可以做到这一点。 node.js 驱动代码非常典型:http://mongodb.github.io/node-mongodb-native/api-generated/db.html#authenticate

【讨论】:

    【解决方案3】:

    即使按照@Tony 的方法,我也得到了一个

    `com.mongodb.CommandFailureException:`
    

    添加

    compile 'org.mongodb:mongo-java-driver:2.13.1'
    

    在 BuildConfig.groovy 的 Dependency 部分中解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多