我有一个启用了身份验证的 mongodb 2.2 数据库。但升级到 2.4 后,我的管理员用户无法登录到管理员数据库以外的任何数据库。我删除了它,system.users
然后创建了另一个管理员用户:
db.addUser( { user: "admin", pwd: "123456", roles: [ "userAdminAnyDatabase" ] } )
但是我再次无法登录到除了 admin 数据库之外的任何数据库。任何人都可以帮忙吗?
我有一个启用了身份验证的 mongodb 2.2 数据库。但升级到 2.4 后,我的管理员用户无法登录到管理员数据库以外的任何数据库。我删除了它,system.users
然后创建了另一个管理员用户:
db.addUser( { user: "admin", pwd: "123456", roles: [ "userAdminAnyDatabase" ] } )
但是我再次无法登录到除了 admin 数据库之外的任何数据库。任何人都可以帮忙吗?
简短的回答是,至少对于您列出的用户:这就是它应该如何与2.4+ 中的新用户权限模型一起使用
解释:
userAdminAnyDatabase角色意味着您现在创建的用户将能够(为自己或任何其他用户)授予对任何其他数据库的访问权限,因此在文档中指定为“超级用户”。但是,这不会自动授予该管理员用户对所有这些数据库的读/写权限(尽管它可以将它们授予自己)。因此,该用户无法针对 admin DB 以外的任何内容进行身份验证,但通过这样做,它可以在其他地方授予相关权限。
我认为您可能正在寻找的是readWriteAnyDatabase角色,尽管我建议谨慎使用该特定角色(如果有的话),而是根据需要授予访问权限,以提高安全性。
在删除之前我不能真正谈论用户权限,因为它们没有被列出,只是新用户的角色。