身份验证从httpinterface和Robomongo失败

时间:2015-03-16 10:55:21

标签: mongodb

修改

啊,坏消息,Robomongo 0.8.x并不支持SCRAM-SHA-1   https://github.com/paralect/robomongo/issues/766。好消息是V0.9他们正在努力工作,承诺支持它。

并且Mongo 3.0中的http接口也不能与SCRAM-SHA-1用户文档一起使用,因为"(它)通常被认为是不安全的"。 https://jira.mongodb.org/browse/SERVER-17527


我只是设置了一个mongo3.0副本集,并启用了身份验证,并创建了一个userAdminAnyDatabase管理员和一个普通的readWrite用户。

./mongod --dbpath=/usr/local/mongo/mongodb/data/data1 --logpath=/usr/local/mongo/mongodb/logs/log1/mongodb.log --port 27017 --replSet jv_mongo --smallfiles --fork --rest --httpinterface --keyFile /usr/local/mongo/mongodb/key/mongodb.pem 
./mongod --dbpath=/usr/local/mongo/mongodb/data/data2 --logpath=/usr/local/mongo/mongodb/logs/log2/mongodb.log --port 27018 --replSet jv_mongo --smallfiles --fork --rest --httpinterface --keyFile /usr/local/mongo/mongodb/key/mongodb.pem
./mongod --dbpath=/usr/local/mongo/mongodb/data/data3 --logpath=/usr/local/mongo/mongodb/logs/log3/mongodb.log --port 27019 --replSet jv_mongo --smallfiles --fork --rest --httpinterface --keyFile /usr/local/mongo/mongodb/key/mongodb.pem


jv_mongo:PRIMARY> use admin
switched to db admin
jv_mongo:PRIMARY> db.getUser("mongoAdmin");
{
    "_id" : "admin.mongoAdmin",
    "user" : "mongoAdmin",
    "db" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

jv_mongo:PRIMARY> use comment
switched to db comment
jv_mongo:PRIMARY> db.getUser("comment");
{
    "_id" : "comment.comment",
    "user" : "comment",
    "db" : "comment",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "comment"
        }
    ]
}

并且没有任何问题地访问shell。

./mongo --port 27017 -u mongoAdmin -p PASSWORD --authenticationDatabase admin

./mongo --port 27017 -u comment -p PASSWORD --authenticationDatabase comment

jv_mongo:PRIMARY> db.user_login.find();
{ "_id" : ObjectId("5506a9de41e1073435ff06b3"), "id" : NumberLong(2), "user_id" : 9527, "login_time" : ISODate("2015-03-16T10:01:02.378Z"), "login_ip" : "127.0.0.1" }
{ "_id" : ObjectId("5506a9de41e1073435ff06b4"), "id" : NumberLong(3), "user_id" : 9538, "login_time" : ISODate("2015-03-16T10:01:02.380Z"), "login_ip" : "127.0.0.1" }
{ "_id" : ObjectId("5506a9de41e1073435ff06b5"), "id" : NumberLong(4), "user_id" : 9549, "login_time" : ISODate("2015-03-16T10:01:02.382Z"), "login_ip" : "127.0.0.1" }

并且还通过java驱动程序成功访问了mongo

enter image description here

但是我在尝试 Robomongo 192.168.106.152:28017 时收到了身份验证失败。 Robomongo

http interface

我对Mongo或Mongo3.0不是很熟悉,也许我错过了一些关键配置?

1 个答案:

答案 0 :(得分:1)

使用MongoChef,它适用于mongodb 3.0 +