mongodb - 如何允许用户在 mongodb 2.6 上运行 eval 命令

标签 mongodb eval

如文档中所述,我必须创建一个允许在任何资源上执行任何操作的角色,但此角色只能在管理数据库中创建,所以它看起来是这样的:

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/

相关文章:

mongodb - 在 mongoid/mongodb 中分组

javascript - 在 MongoDB 中查找所有具有相关 objectId 名称的内容

node.js - 如果距离上次更新的时间是一定的持续时间,则使用 mongoose 进行更新

javascript - iMacros 使用 EVAL 删除文本

perl 套接字 : increment port if in use

Javascript eval 简化

java - Springboot : How to remove an annotation on a subclass property?

mongodb - 由于 BSONSize 无效,mongorestore 失败

python - 如何以字符串格式编写多行函数?

Python 保存一个 eval 函数