Mongodb无需管理员访问

时间:2018-09-12 06:46:55

标签: mongodb nosql authorization roles

我遇到一个奇怪的问题。我的本地测试数据库运行良好,但是今天开始

mongod --auth

随着身份验证的进行,我无法再运行测试,但是对数据库的访问被拒绝了。

现在,我的管理员用户位于authdb admin中。它的作用是userAdminAnyDatabase。我尝试再次使用

更新用户
db.updateUser("admin", 
    {pwd: "somePass", roles:[
        {role: "userAdminAnyDatabase", db: "admin"}
    ]}
);

但是我没有运气。这就是我在数据库中输入的内容。

{
    "role" : "userAdminAnyDatabase",
    "db" : "admin",
    "isBuiltin" : true,
    "roles" : [ ],
    "inheritedRoles" : [ ]
}

我也再次检查了文档,但仍然不知道如何拒绝访问(特别是在一切正常之前)。问题肯定不在我的节点应用程序中,因为noSQLBooster也被拒绝访问。 如果有人发现我现在做错了什么,将不胜感激。

1 个答案:

答案 0 :(得分:1)

好。这是我为解决此问题所做的工作。 (仍然无法解决的是使用旧设置对数据库的访问是如何工作的)

我不仅将角色userAdminAnyDatabase添加到admin,而且还添加了dbAdminAnyDatabasereadWriteAnyDatabase

为了使测试更加安全,我还创建了一个unitTest用户和一个defaultUser,并拥有相应数据库的权限,这样就不会遇到意外删除生产数据库的危险。 / p>