J'ai configuré le jeu de réplicas avec authentification. J'ai utilisé this tutorial. J'ai configuré le fichier de clés, l'utilisateur admin et d'autres utilisateurs. Tout fonctionne bien - l'accès anonyme est désactivé et je peux me connecter
$ mongo
MongoDB Shell version: 2.6.1
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.auth("USERNAME","PASSWORD")
1
rs0:PRIMARY>
en utilisant les informations d'identification des utilisateurs que j'ai créés.
Mais je ne peux pas me connecter en ligne de commande
$ mongo -u 'USERNAME' -p 'PASSWORD'
MongoDB Shell version: 2.6.1
connecting to: test
2014-05-18T14:23:47.324+0200 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/Shell/db.js:1210
exception: login failed
en utilisant les mêmes informations d'identification. Je n'ai rien trouvé d'utile dans la documentation ou ici sur SO.
L'authentification in-shell effectuée dans votre exemple concerne la base de données admin . La ligne de commande publiée ci-dessus ne spécifie pas de base de données et s’authentifie donc auprès de la base de données par défaut qui est test . Essayez plutôt ceci pour vous authentifier via la ligne de commande auprès de la base de données admin:
mongo admin -u 'USERNAME' -p 'PASSWORD'
si le serveur n'est pas sur l'hôte local, vous pouvez utiliser ceci:
mongo your_Host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD'
Peut-être différent maintenant à cause d'une mise à jour depuis la réponse initiale à cette question, mais l'authentification ne réussit que lorsque le nom d'utilisateur/mot de passe est placé entre guillemets ..
mongo admin -u "myName" -p "myPassword"