我需要帮助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&lt; my password&gt; 就这样 -p&lt;我的密码&gt;
但应用程序(使用简单的数据库用户)工作正常。 我创建了数据库和两个用户(在使用auth = true之前),对于使用它们的应用程序来说它们似乎很好。
我无法谷歌任何信息。在大多数情况下,添加 clusterAdmin 或其他权限可以解决问题。
操作系统:Ubuntu 12.04和Debian 7(同样的行为)我的错误是什么?
答案 0 :(得分:1)
您是否在管理数据库中创建了用户? clusterAdmin和* AnyDatabase权限仅适用于admin数据库。
进行身份验证时,您需要对管理数据库进行身份验证,然后根据用户的权限访问其他数据库。
mongo --authenticationDatabase admin -u root -p <my password> --host 127.0.0.1