我试图MongoDB的设置密码,以防止访问空登录名和通(默认值)为DB。
我statring蒙戈服务器:
sudo ./mongod
启动客户端:
./mongo
设置密码:
use admin
db.addUser("root", "root")
exit
输出是:
MongoDB shell version: 2.2.0
connecting to: test
> use admin
switched to db admin
> db.addUser("root", "root")
{
"user" : "root",
"readOnly" : false,
"pwd" : "2a8025f0885adad5a8ce0044070032b3",
"_id" : ObjectId("50c90b94e28c41a388104f64")
}
> exit
Hoever,wheh我尝试用空凭据权威性(我用mViever管理界面),它仍然有效。 否则,以root / root访问权限是不是可用的编缉。 我做错了吗?
也试图启动蒙戈服务器-auth参数,相同的结果:
./mongod -auth
UPD:与-auth参数开始不能与任何通登录后。 获得:
Thu Dec 13 03:27:38 uncaught exception: error {
"$err" : "unauthorized db:admin ns:admin.system.users lock type:1 client:127.0.0.1",
"code" : 10057
}
更新:我不知道什么是布莱恩?
> db.auth("root","root");
1
> ^C
bye
它可以登录。 让我们重新开始./mongod --auth
和./mongo
:
MacBook-Pro-Ilya:bin ilyarusanen$ ./mongo
MongoDB shell version: 2.2.2
connecting to: test
> db.auth("root","root")
Error: { errmsg: "auth fails", ok: 0.0 }
0
> db.test.insert({"yeah":"2342"})
Fri Dec 14 08:52:05 uncaught exception: getlasterror failed: { "errmsg" : "need to login", "ok" : 0 }
> use admin
switched to db admin
> db.addUser("root","root")
Fri Dec 14 08:52:14 uncaught exception: error {
"$err" : "unauthorized db:admin ns:admin.system.users lock type:1 client:127.0.0.1",
"code" : 10057
}
> db.auth("root","root")
1
为什么在一开始可以登录? 为什么重启后蒙哥无法登录? 为什么失败的尝试后adduser的,它变得能够登录? 谢谢。
UPDATE2:MongoHub似乎权威性确定。 然而,从我的NodeJS仍然无法登录:我用这样的代码:
mongo_db.open(function(err,data){
if(data){
data.authenticate("root", "root",function(err2,data2){
if(data2){
console.log("Database opened");
}
else{
console.log(err2);
}
});
} else {
console.log(err);
}
});
而我得到:
{ [MongoError: auth fails] name: 'MongoError', errmsg: 'auth fails', ok: 0 }
但是提到,MongoHub具有相同的凭证工作正常。