我对 mongoDB 有一些权限问题,我使用 auth menthod 创建了一个数据库管理员,这很有效。
我可以使用我使用角色“userAdminAnyDatabase”创建的管理员帐户从远程服务器连接到我的数据库,而不会发出任何警告。但是,当我使用不同的数据库(使用 myDB)时,我无法运行 db.runCommand。
这是我得到的:
> db.runCommand({createIndexes: "C_Cache", indexes: [{key: {tags: 1}, name: "tags_1"}]})
{
"ok" : 0,
"errmsg" : "not authorized on myDB to execute command { createIndexes: \"C_Cache\", indexes: [ { key: { tags: 1.0 }, name: \"tags_1\" } ] }",
"code" : 13
}
当我在配置文件中注释“auth”时,一切正常。但这不是我想要的。我需要那种身份验证方法。
编辑:
我只是误解了“userAdminAnyDatabase”的含义,这并不赋予您修改其他数据库的权利。为此,它似乎需要角色“root”来适应超级用户角色