我需要一些关于 mongo 的帮助。
我根据以下说明安装了 2.4.9 版本:
对于 ubuntu - http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
对于 Debian - http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/
我遵循手册和文档。一切正常,但是当我将 mongo 设置更改为“auth=true”时,权限变得疯狂。
这是我的用户:
{
"_id" : ObjectId("5305dd8729ae7b95a4bde944"),
"user" : "root",
"pwd" : "063bbfd478f7b78df6c93b6202af9145",
"roles" : ["clusterAdmin", "userAdminAnyDatabase",
"readWriteAnyDatabase", "dbAdminAnyDatabase" ] }
我用的是 rockmongo。当我打开我的 mongodb 时,它说我没有足够的权限来运行命令 db.getCollectionNames()
它说:执行失败:未经授权
创建用户、管理数据库也是如此。
我无法想象我应该为用户提供更多的权限。
正如手册中所述,该用户是我创建的第一个用户。我给了他所有最高的管理员权限。
将 auth 参数更改为 auth=true 后
我也无法在命令行中登录。
$ mongo -uroot -p <my password> --host 127.0.0.1
MongoDB shell version: 2.4.9
connecting to: 127.0.0.1:27017/test
Thu Feb 20 11:56:17.510 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
exception: login failed
顺便说一句,我尝试了带大括号和不带大括号的密码。有长选项和短选项。这样 -p
但是应用程序(使用简单的数据库用户)工作正常。 我创建了数据库和两个用户(在设置 auth=true 之前),它们对于使用它们的应用程序来说似乎很好。
我无法用谷歌搜索任何信息。在大多数情况下,添加 clusterAdmin 或其他权限可以为他们解决问题。
操作系统:Ubuntu 12.04 和 Debian 7(两者行为相同)
MongoDB:2.4.9
我的错误是什么?
最佳答案
您是否在 admin 数据库上创建了用户? clusterAdmin 和 *AnyDatabase 权限仅适用于管理数据库。
认证时,需要对admin数据库进行认证,然后根据用户的权限访问其他数据库。
mongo --authenticationDatabase admin -u root -p <my password> --host 127.0.0.1
关于linux - MongoDB auth=true 集群管理员仍然缺乏权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907602/