MongoDB 2.6.5创建管理员角色

时间:2015-03-25 08:55:24

标签: mongodb admin privileges

MongoDB 2.6.5 上,我尝试通过运行此代码在Admin上创建Admin DB用户:

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
                    }
     } 

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

但是在admin db上看起来我没有。

感谢您的回答。

1 个答案:

答案 0 :(得分:2)

OK!所以我发现了问题。

如果您遇到类似的问题,可以使用root凭据进行隔离扫描。

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

auth的值设为false。现在要小心,因为这可能是一个重大的安全问题。

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

重新启动mongo服务以应用更改:

sudo service mongod restart

登录您的mongodb admin DB,然后运行创建用户的命令。

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

所以现在你可以..

退出, 将auth参数更改回true,然后重新启动mongo服务(并打开我关闭的端口以关闭lol)。