如何在分片环境中更新MongoDB 3.0中的用户定义角色?
我正在使用MMS来管理我的服务器,这是一个典型的分片集群,目前只有一个分片:3个mongod用于shard000(2个服务器+1个仲裁器)+1个配置服务器+2个mongos实例 Auth已启用,并且工作正常。我在MMS管理控制台中添加了一个用户定义的角色,我可以在MongoShell中看到它如何在分片环境中更新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",
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配置“任何资源上的任何操作”。