Je souhaite configurer l'authentification par nom d'utilisateur et mot de passe pour mon instance MongoDB, de sorte que tout accès à distance demande le nom d'utilisateur et le mot de passe. J'ai essayé le tutoriel sur le 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 couru à nouveau 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, je ne suis pas invité à entrer le nom d'utilisateur et le mot de passe.
MISE À JOUR 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 mongodump
et mongoexport
.
authentication
mongodb
murvinlai
la source
la source
Réponses:
Vous devez commencer
mongod
avec l'--auth
option après avoir configuré l'utilisateur.Depuis le site MongoDB:
Authentification MongoDB
la source
admin
base de données, utilisez une autre base de données et réessayez. Seul un userAdmin (AnyDatabase) peut se connecteradmin
.Wow tant de réponses compliquées / déroutantes ici.
C'est à partir de la v3.4 .
Réponse courte.
1) Démarrez MongoDB sans contrôle d'accès.
2) Connectez-vous à l'instance.
3) Créez l'utilisateur.
4) Arrêtez l'instance MongoDB et redémarrez-la avec le contrôle d'accès.
5) Connectez-vous et authentifiez-vous en tant qu'utilisateur.
Réponse longue: lisez ceci si vous voulez bien comprendre.
C'est vraiment simple. Je vais abrutir ce qui suit https://docs.mongodb.com/manual/tutorial/enable-authentication/
Si vous voulez en savoir plus sur ce que les rôles font réellement, lisez plus ici: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Démarrez MongoDB sans contrôle d'accès.
2) Connectez-vous à l'instance.
3) Créez l'administrateur utilisateur. Ce qui suit crée un administrateur utilisateur dans la
admin
base de données d'authentification. L'utilisateur estdbOwner
sur lasome_db
base de données et NON sur laadmin
base de données, c'est important de se rappeler.Ou si vous souhaitez créer un administrateur qui est administrateur sur n'importe quelle base de données:
4) Arrêtez l'instance MongoDB et redémarrez-la avec le contrôle d'accès.
5) Connectez-vous et authentifiez-vous en tant qu'administrateur utilisateur vers la
admin
base de données d'authentification, PAS vers lasome_db
base de données d'authentification. L'administrateur utilisateur a été créé dans laadmin
base de données d'authentification, l'utilisateur n'existe pas dans lasome_db
base de données d'authentification.Vous êtes maintenant authentifié en tant que
dbOwner
sur lasome_db
base de données. Alors maintenant, si vous souhaitez lire / écrire / faire des trucs directement vers lasome_db
base de données, vous pouvez y changer.Plus d'informations sur les rôles: https://docs.mongodb.com/manual/reference/built-in-roles/
Si vous souhaitez créer des utilisateurs supplémentaires qui ne sont pas des administrateurs d'utilisateurs et qui ne sont que des utilisateurs normaux, continuez à lire ci-dessous.
6) Créez un utilisateur normal. Cet utilisateur sera créé dans la
some_db
base de données d'authentification ci-dessous.7) Quittez le shell mongo, reconnectez-vous, authentifiez-vous en tant qu'utilisateur.
la source
Tout d'abord,
#auth=true
décommentez la ligne qui commence par dans votre fichier de configuration mongod (chemin par défaut/etc/mongo.conf
). Cela activera l'authentification pour mongodb.Ensuite, redémarrez mongodb:
sudo service mongod restart
la source
/etc/mongod.conf
pas/etc/mongo.conf
Cette réponse est pour Mongo 3.2.1 Référence
Terminal 1:
Terminal 2:
si vous souhaitez ajouter sans rôles (facultatif):
pour vérifier si authentifié ou non:
cela devrait vous donner:
autre :
la source
use admin
avantcreateUser
sinon ça donnait une erreur.Voici un code javascript pour ajouter des utilisateurs.
Commencez
mongod
avec--auth = true
Accédez à la base de données d'administration à partir du shell mongo et passez le fichier javascript.
mongo admin "Filename.js"
"Filename.js"
L'ajout de l'utilisateur est maintenant terminé, nous pouvons vérifier l'accès à la base de données à partir du shell mongo
la source
https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization
Modifiez le fichier de paramètres mongo;
Ajoutez la ligne:
Redémarrez le service
Cordialement
la source
Exécutez d'abord mongoDB sur le terminal en utilisant
maintenant exécutez le shell mongo utilisez les commandes suivantes
Redémarrez l'instance MongoDB avec le contrôle d'accès.
Maintenant, authentifiez-vous à partir de la ligne de commande en utilisant
Je l'ai lu
https://docs.mongodb.com/manual/tutorial/enable-authentication/
la source
MongoDB Enterprise > db.system.users.find() { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SC RAM-SHA-1" : { "iterationCount" : 10000, "salt" : "k96PCEflidMY5seVju+gAw==", "s toredKey" : "CabQTnJtny7cv0wT5X8oX9QOn3A=", "serverKey" : "RJyCdnlIhyIfj2+d44L61 bYK+MU=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdmin", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "root", "db" : "admin" } ] }
authentification échoue toujoursroot
rôle pour donner accès aux opérations et à toutes les ressources des rôles suivants combinés ... racine du rôleC'est ce que j'ai fait sur Ubuntu 18.04:
la source
Tu pourrais changer
/etc/mongod.conf
.Avant
#security:
Après
alors
sudo service mongod restart
la source
Suivez les étapes ci-dessous pour
mongod --auth
en cas de Linux, vous pouvez modifier le/etc/mongod.conf
fichier à ajoutersecurity.authorization : enabled
, puis redémarrer le service mongdmongo -u "admin" -p "admin123" --authenticationDatabase "admin"
. C'est çaVous pouvez consulter ce post pour entrer dans plus de détails et apprendre à vous y connecter à l'aide de mangouste.
la source
Création d'utilisateur avec mot de passe pour une base de données spécifique pour sécuriser l'accès à la base de données:
la source
Vous devrez basculer vers la base de données sur laquelle vous souhaitez que l'utilisateur (et non la base de données d'administration) ...
use mydatabase
Voir cet article pour plus d'aide ... https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/
la source
Ces étapes ont fonctionné sur moi:
la source
La meilleure pratique pour se connecter à mongoDB comme suit:
Après l'installation initiale,
use admin
Exécutez ensuite le script suivant pour créer un utilisateur administrateur
db.createUser( { user: "YourUserName", pwd: "YourPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] })
le script suivant créera l'utilisateur admin pour la base de données.
connectez-vous à db.admin en utilisant
mongo -u YourUserName -p YourPassword admin
Après la connexion, vous pouvez créer le numéro N de la base de données avec les mêmes informations d'identification d'administrateur ou différentes en répétant les 1 à 3.
Cela vous permet de créer différents utilisateurs et mots de passe pour les différentes collections que vous créez dans MongoDB
la source
après avoir créé un nouvel utilisateur, n'oubliez pas d'
grant
read/write/root
autoriser l'utilisateur. vous pouvez essayer lecmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])
la source