Je souhaite mettre en place une authentification par nom d'utilisateur et mot de passe pour mon instance MongoDB, afin que tout accès à distance demande le nom d'utilisateur et le mot de passe. J'ai essayé le tutoriel du site MongoDB et j'ai fait ce qui suit :
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Après cela, je suis sorti et j'ai relancé mongo. Et je n'ai pas besoin de mot de passe pour y accéder. Même si je me connecte à la base de données à distance, aucun nom d'utilisateur ni mot de passe ne m'est demandé.
UPDATE Voici la solution que j'ai fini par utiliser
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
Le nom d'utilisateur et le mot de passe fonctionneront de la même manière pour les services suivants mongodump
y mongoexport
.
4 votes
Ceci pour MongDB version 2.2.x
29 votes
Dans Mongo 3.0.4, la commande pour créer un utilisateur est la suivante db.createUser() .
4 votes
Veuillez suivre cette procédure pour créer un utilisateur administrateur sur Mongodb 3.0. docs.mongodb.org/v3.0/tutorial/add-user-administrator
3 votes
Une mise à jour pour MongoDB 3.0+ : Comment configurer l'authentification dans MongoDB 3.0 .
2 votes
Pour être clair, cela ne crypte pas les octets qui passent sur le fil. C'est seulement pour le contrôle d'accès.
0 votes
J'ai dû utiliser
service mongod restart
au lieu de./mongodb/bin/mongod
.