如文档中所述,我必须创建一个允许在任何资源上执行任何操作的角色,但此角色只能在管理数据库中创建,所以它看起来是这样的:
use admin
db.createRole({
role: 'superuser',
privileges:[{
resource: {anyResource: true},
actions: ['anyAction']
}],
roles: []
})
下一步是将此角色授予用户,但问题是,我无法将 admin 数据库的角色授予另一个数据库的用户,因此此命令:
db.createUser({
user: 'someusername',
pwd: 'somepassword',
roles: [{
role: 'superuser',
db: 'somedatabase'
}]
})
按预期返回:
Error: couldn't add user: No role named superuser@somedatabase
那么,我应该怎么做才能允许用户 someusername 在 somedatabase 上运行 eval 命令?
最佳答案
所以,问题出在不正确的角色列表中。正确的是:
db.createUser({
user: 'someusername',
pwd: 'somepassword',
roles: ['superuser']
})
关于mongodb - 如何允许用户在 mongodb 2.6 上运行 eval 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706330/