我想在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
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
答案 0 :(得分:0)
您可能使用dbOwner
角色代替root
来解决此问题。 root
角色只能在admin
db。
use admin;
db.createUser({user: 'rootuser', pwd: '12345', roles: ['root']});