只能查询管理数据库

时间:2014-06-09 09:41:32

标签: mongodb

我刚升级到2.6。我运行authSchemaUpgrade。但在那之后,我设法从数据库中删除所有用户(它是一个私有的小型数据库,所以这不是太糟糕)。现在我创建了一个新用户admin

{
        "_id" : "admin.admin",
        "user" : "admin",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

在管理数据库上有db.auth("admin","..")之后,我应该能够查询任何其他数据库,但在我这样做之后:

用户otherDatabase    展示收藏品

我明白了:

2014-06-09T09:33:36.853+0000 error: {
        "$err" : "not authorized for query on otherDatabase.system.namespaces",
        "code" : 13
} at src/mongo/shell/query.js:131

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要为管理员用户提供readWriteAnyDatabase角色,以便该用户可以查询其他数据库。

您可能还需要考虑授予管理员用户dbAdminAnyDatabaseclusterAdmin个角色。