我已经安装了mongodb服务器v.2.6.1并按照所有安装步骤(与以前一样)并且工作正常(我运行服务器并从另一个cmd连接到它,一切正常)。
我还安装了MongoVUE v.1.6.9,当我从那里创建用户时,它们在我写入show users
的cmd中时不出现,它们只在我写db.system.users.find()
时出现。< / p>
因此,如果我希望能够连接到任何数据库,甚至是MonogoVUE,我需要将de cmd中的用户创建为db.addUser("username", "password")
(我知道我的当前版本不推荐使用它,但它有效)我写show users
或db.system.users.find()
时会得到不同的用户,因为前者是在cmd中创建的,后者是在MongoVUE中创建的。
这种行为对我来说似乎很奇怪,我无法弄清楚为什么。也许我错过了一些配置参数,但在其他安装中我从未遇到过这样的问题。
我重新安装了MongoVUE但是我不确定我是否已经摆脱了之前的错误配置,因为重新安装后它知道我的连接参数(端口,用户......)。我的操作系统是带有SP1的Windows7。
答案 0 :(得分:0)
MongoDB 2.6引入了一种用于存储身份验证数据的新模型,以及用户定义角色等其他安全功能。在MongoDB 2.6中,所有用户和角色信息现在都存储在admin
数据库的system.users
和system.roles
集合中。还有User and Role Management的新shell帮助程序和命令。
某些命令(如db.addUser()
)已在mongo
2.6 shell中弃用,并映射到它们的现代等效项,因此在您学习新命令之前它们将继续有效。
例如:
> db.addUser("username", "password")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "username", "roles" : [ "dbOwner" ] }
如果您在以前版本的MongoDB中创建了用户,您可能会看到迁移到2.6+身份验证格式后留下的旧数据库特定的system.users
集合。这些已不再使用。
答案 1 :(得分:0)
嗯,经过一番研究后,我终于决定安装以前稳定版的mongodb服务器(v 2.4.10)以及我是如何修复的。
2.6.x版本似乎表明在我的环境中使用MongoVUE打嗝(带有SP1的Windows7)。 我还是不知道为什么。