web-dev-qa-db-fra.com

L'authentification en ligne de commande MongoDB 2.6.1 échoue

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.

22
Michal Artazov

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'
54
James Wahlin

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"
0
SauerTrout