0

我已经安装了 mongodb 服务器 v.2.6.1 并遵循了所有安装步骤(与以前一样)并且工作正常(我运行服务器并从另一个 cmd 连接到它,一切正常)。

我还安装了 MongoVUE v.1.6.9,当我从那里创建用户时,它们不会出现在我写的 cmd 中show users,它们只出现在我写的时候db.system.users.find()

因此,如果我希望能够连接到任何数据库,即使是从 MonogoVUE,我也需要从 de cmd 创建用户db.addUser("username", "password")(我知道它在我当前的版本中已被弃用,但它可以工作)然后我在编写时获得不同的用户show users或者db.system.users.find()因为前者是在 cmd 中创建的,而后者是在 MongoVUE 中创建的。

这种行为对我来说似乎很奇怪,我不知道为什么。也许我缺少一些配置参数,但在其他安装中我从来没有遇到过这样的问题。

我已经重新安装了 MongoVUE,但我不确定我是否摆脱了以前的错误配置,因为重新安装后它知道我的连接参数(端口、用户......)。我的操作系统是带有 SP1 的 Windows7。

4

2 回答 2

0

MongoDB 2.6 引入了一种用于存储身份验证数据的新模型,以及额外的安全功能,如用户定义的角色。在 MongoDB 2.6 中,所有用户和角色信息现在都存储在数据库的system.userssystem.roles集合中admin。还有用于用户和角色管理的新 shell 帮助程序和命令。

某些命令(如2.6 shelldb.addUser()中已弃用)mongo并映射到其现代等效命令,因此它们将继续工作,直到您学习新命令为止。

例如:

 > db.addUser("username", "password")
 WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
 Successfully added user: { "user" : "username", "roles" : [ "dbOwner" ] }

如果您在以前版本的 MongoDB 中创建用户,您可能会看到system.users迁移到 2.6+ 身份验证格式后留下的旧数据库特定集合。这些不再使用。

于 2014-07-05T23:18:44.330 回答
0

好吧,经过一番研究,我最终决定安装以前稳定版本的 mongodb 服务器(v 2.4.10),这就是我修复它的方法。

版本 2.6.x 似乎表明 MongoVUE 在我的环境(带有 SP1 的 Windows7)中出现了问题。我仍然不知道为什么。

于 2014-07-07T18:56:08.533 回答