我有一个启用auth的MongoDB2.2数据库。但是在升级到2.4之后,我的管理员用户不能登录到除管理数据库之外的任何数据库。我从system.users中删除了它,然后用以下方法创建了另一个管理用户:
db.addUser( { user: "admin", pwd: "123456", roles: [ "userAdminAnyDatabase" ] } )但同样,我不能登录到任何数据库,除了管理数据库。有人能帮忙吗?
发布于 2013-04-25 10:37:25
简单的回答是,至少对您列出的用户是这样的:这就是它应该如何与新的用户权限模型在2.4+中工作。
解释:
userAdminAnyDatabase角色意味着您现在创建的用户将能够授予对任何其他数据库的访问权限(为自己或任何其他用户),因此在文档中指定为“超级用户”。但是,这并不会自动授予管理用户对所有这些数据库的读/写权限(尽管它可以授予它们自己)。因此,用户不能针对管理DB以外的任何东西进行身份验证,但是通过这样做,它可以在其他地方授予相关的权限。
我认为您可能需要的是readWriteAnyDatabase角色,不过我建议您谨慎地使用这个特定角色(如果有的话),并根据需要授予访问权限,以提高安全性。
在删除之前,我不能真正地与用户权限对话,因为它们没有被列出,只是新用户的角色。
https://dba.stackexchange.com/questions/39884
复制相似问题