MongoDB auth = true cluster Admin仍然缺少权限

时间:2014-02-20 12:18:29

标签: linux mongodb authentication ubuntu permissions

我需要帮助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(同样的行为)
MongoDb:2.4.9

我的错误是什么?

1 个答案:

答案 0 :(得分:1)

您是否在管理数据库中创建了用户? clusterAdmin和* AnyDatabase权限仅适用于admin数据库。

进行身份验证时,您需要对管理数据库进行身份验证,然后根据用户的权限访问其他数据库。

mongo --authenticationDatabase admin -u root -p <my password> --host 127.0.0.1