【问题标题】:MongoDB 2.6.5 create admin roleMongoDB 2.6.5 创建管理员角色
【发布时间】:2015-05-28 20:37:47
【问题描述】:

MongoDB 2.6.5 上,我正在尝试通过运行以下代码在我的 Admin DB 上创建一个 Admin 用户:

use admin
db.createUser(
    {
        user: "MY_ADMIN_USER",
        pwd: "SOME_STROG_PASSWORD",
        roles: [ {
                    role: "userAdminAnyDatabase",
                    db: "admin"
                } ]
    }
);

但是当我这样做时,我得到了这个错误:

 Error: couldn't add user: not authorized on admin to 
    execute command
     {
     createUser: "MY_ADMIN_USER",
     pwd:   "xxx",
     roles: [{
                role: "userAdminAnyDatabase",
                db:     "admin"
              }],
     digestPassword: false,
     writeConcern: { 
                    w:"majority",
                    wtimeout: 30000.0
                    }
     } 

登录到我的应用程序的数据库时,我拥有所有权限。

但在管理数据库上,我好像没有。

感谢您的回答。

【问题讨论】:

  • 您使用什么凭据来运行 db.CreateUser ?该用户似乎没有 Admin 数据库的读/写权限。如果您尝试将这些授予该用户会发生什么?
  • 好吧,如果你说的是操作系统凭据,那就是root。关于 mongo db 凭据,我只是使用 mongo 登录,没有进行身份验证。

标签: mongodb admin privileges


【解决方案1】:

好的!所以我发现了问题。

如果您遇到类似情况,可以使用 root 凭据将其通过。

使用root用户时,运行vi /etc/mongod.conf进入配置文件。

auth 的值更改为false。现在要小心,因为这可能是一个主要的安全问题。

我建议你在做这件事的时候关闭相关端口..

重启 mongo 服务以应用更改:

sudo service mongod restart

登录到您的 mongodb 管理数据库,然后运行创建用户的命令。

db.createUser(
    {
        user: "MY_ADMIN_USER",
        pwd: "SOME_STROG_PASSWORD",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    }
);

所以现在你可以..

退出, 将 auth 参数改回 true,然后重启 mongo 服务(并打开我强迫你关闭的端口)。

【讨论】:

    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2017-08-10
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多