MongoDB: utilisateur/mot de passe pour accéder à la db

Je suis en train de définir le mot de passe pour mongodb pour empêcher l'accès à la db avec vide login et pass (par défaut).

Je suis statring mongo serveur:

sudo ./mongod

De départ du client:

./mongo

Configuration du mot de passe:

use admin
db.addUser("root", "root")
exit

La sortie est:

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 j'essaie de auth avec vide d'informations d'identification (j'utilise mViever administrateur de l'INTERFACE utilisateur), il fonctionne toujours. Sinon, l'accès à root/root n'est pas disponible. Ce que je fais mal?

Aussi essayé de démarrer mongo serveur avec authentification paramètre, le même résultat:

./mongod -auth

UPD: Après le démarrage avec -auth paramètre ne peux pas me connecter avec n'importe quel col. Obtention:

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
}

Mise à jour: je ne sais pas ce qui est goin sur...

> db.auth("root","root");
1
> ^C
bye

Il peut se connecter. Nous allons redémarrer ./mongod --auth et ./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

Pourquoi au début, il peut se connecter? Pourquoi après le redémarrage de mongo n'est pas en mesure de vous connecter? Et pourquoi, après une tentative avortée de la commande addUser, il devient capable de se connecter? Merci.

UPDATE2: MongoHub semble auth ok. Cependant, à partir de NodeJS je n'ai pas encore de connexion: j'utilise ce code:

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);
  }
});

Et j'obtiens:

{ [MongoError: auth fails] name: 'MongoError', errmsg: 'auth fails', ok: 0 }

Mais mention, MongoHub avec les mêmes informations d'identification fonctionne très bien.

Vous êtes à la création d'un utilisateur admin, êtes-vous à l'aide de db.auth("root","root") sur l'admin de la base de données? Comme vous l'avez vu, vous devrez recommencer le processus avec --auth pour l'authentification à être activé.
en fait, après le passage d'-auth je ne peux même pas accéder à mongo. J'obtiens: Unkown Hôte. Veuillez vérifier si MongoDB est en cours d'exécution sur l'hôte et le port ! erreur. Mais mongo est en cours d'exécution sur 27017, et si je switch-auth tout, il fonctionne comme d'habitude (cependant, j'ai une nouvelle base de données "admin")
J'ai utilisé ceci tutoriel et n'avait aucun problème avec ça. Jetez un oeil à ceci l'instruction, si vous essayez de connexion à partir de localhost.

OriginalL'auteur f1nn | 2012-12-12