Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在分片环境中更新MongoDB 3.0中的用户定义角色?_Mongodb_Mongodb Mms - Fatal编程技术网

如何在分片环境中更新MongoDB 3.0中的用户定义角色?

如何在分片环境中更新MongoDB 3.0中的用户定义角色?,mongodb,mongodb-mms,Mongodb,Mongodb Mms,我正在使用MMS来管理我的服务器,这是一个典型的分片集群,目前只有一个分片:3个mongod用于shard000(2个服务器+1个仲裁器)+1个配置服务器+2个mongos实例 Auth已启用,并且工作正常。我在MMS管理控制台中添加了一个用户定义的角色,我可以在MongoShell中看到它 db.system.roles.findOne() { "_id" : "admin.myrole", "role" : "myrole", "db" : "admin",

我正在使用MMS来管理我的服务器,这是一个典型的分片集群,目前只有一个分片:3个mongod用于shard000(2个服务器+1个仲裁器)+1个配置服务器+2个mongos实例

Auth已启用,并且工作正常。我在MMS管理控制台中添加了一个用户定义的角色,我可以在MongoShell中看到它

db.system.roles.findOne()
{
    "_id" : "admin.myrole",
    "role" : "myrole",
    "db" : "admin",
    "privileges" : [
        {
            "resource" : {
                "db" : "",
                "collection" : ""
            },
            "actions" : [
                "changeCustomData",
                "changePassword",
 ...
我想将其更改为AnyResource上的AnyAction(根据操作需要)。因此,我试图执行以下操作:

db.runCommand({ "updateRole": "myrole", "privileges": [  { resource: { anyResource: true}, actions: [ "anyAction" ] } ] }); db.system.roles.findOne()`
and for one second, I get the result I want:
{
    "_id" : "admin.myrole",
    "role" : "myrole",
    "db" : "admin",
    "privileges" : [
        {
            "resource" : {
                "anyResource" : true
            },
            "actions" : [
                "anyAction"
            ]
        }
    ],
    "roles" : [ ]
}
但是,大约两秒钟后: 角色已恢复:

configsvr> db.system.roles.findOne()
{
    "_id" : "admin.myrole",
    "role" : "myrole",
    "db" : "admin",
    "privileges" : [
        {
            "resource" : {
                "db" : "",
                "collection" : ""
            },
            "actions" : [
                "changeCustomData",
                "changePassword",

...
我不知道“谁”在修复它。 我已经从主数据库和管理数据库中的配置服务器尝试了上述命令

如何存储角色


注:我知道3.0中不推荐使用“eval”,但我想问的是我无法更新角色的原因。

MMS automation agent正在恢复角色,使其与您的配置保持一致。更改自动化配置。我应该在哪里更改自动化配置?无法通过MMS GUI AFAIK配置“任何资源上的任何操作”。