Replicaset - Mongo版本3.2.4,我在某些情况下使用bash脚本来更新mongo权限,例如:
mongo <<EOF
db["grantRolesToUser"]("someone", ["readWriteAnyDatabase"]);
print(JSON.stringify(db.getUsers()));
EOF
基本上,将readWriteAnyDatabase角色添加到“某人”。
它有效,打印显示具有新角色的用户。 但是,2-3秒后。它消失了!!
关于可能导致这种情况的任何想法?
答案 0 :(得分:0)
该问题与MMS / OpsManager在复制集中的用户自动同步有关。
从OpsManager手册:
If you want Ops Manager to ensure that all deployments in a group have the same database users, use only the Ops Manager interface to manage users.
If you want certain deployments in a group to possess users not set at the group level, you can add them through direct connection to the MongoDB instances.
因此,您既可以在OpsManager中控制用户,也可以从mongo shell本身控制用户,但不能同时控制两者。