我遇到一个奇怪的问题。我的本地测试数据库运行良好,但是今天开始
mongod --auth
随着身份验证的进行,我无法再运行测试,但是对数据库的访问被拒绝了。
现在,我的管理员用户位于authdb
admin
中。它的作用是userAdminAnyDatabase
。我尝试再次使用
db.updateUser("admin",
{pwd: "somePass", roles:[
{role: "userAdminAnyDatabase", db: "admin"}
]}
);
但是我没有运气。这就是我在数据库中输入的内容。
{
"role" : "userAdminAnyDatabase",
"db" : "admin",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
我也再次检查了文档,但仍然不知道如何拒绝访问(特别是在一切正常之前)。问题肯定不在我的节点应用程序中,因为noSQLBooster
也被拒绝访问。
如果有人发现我现在做错了什么,将不胜感激。
答案 0 :(得分:1)
好。这是我为解决此问题所做的工作。 (仍然无法解决的是使用旧设置对数据库的访问是如何工作的)
我不仅将角色userAdminAnyDatabase
添加到admin
,而且还添加了dbAdminAnyDatabase
和readWriteAnyDatabase
为了使测试更加安全,我还创建了一个unitTest
用户和一个defaultUser
,并拥有相应数据库的权限,这样就不会遇到意外删除生产数据库的危险。 / p>