Rails - mongodb - 新的root用户

时间:2016-08-05 06:46:37

标签: ruby-on-rails ruby mongodb

我想在mongodb中创建新的root用户,他可以访问任何数据库,任何集合并以root身份执行所有操作。 以下是我的mongoid.yml文件

development:
  clients:
    default:
      database: mydb_development
      hosts:
        - localhost:27017
      options:
        user: rootuser
        password: 12345
  options:
    raise_not_found_error: false

我阅读了文档,并创建了新的rootuser

use admin
db.createUser({user: 'rootuser', pwd: '12345', roles: ['root']});

它成功创建了用户,但只能访问admin数据库而不是任何数据库。

Mongo::Auth::Unauthorized (User rootuser is not authorized to access mydb_development.):

另一方面,当我想在mydb_development myrootuser

中添加新的root用户时
use mydb_development
db.createUser({user: 'rootuser', pwd: '12345', roles: ['root']});

我无法创建新用户而且收到错误:

Error: couldn't add user: No role named root@mydb_development :

所以问题是:如何添加具有root权限的新用户并能够通过mongoid.yml使用它?

MongoDB shell版本:3.2.10

1 个答案:

答案 0 :(得分:0)

您可能使用dbOwner角色代替root来解决此问题。 root角色只能在admin db。

上使用
use admin;
db.createUser({user: 'rootuser', pwd: '12345', roles: ['root']});