Cet article vous présente principalement la solution à l'échec de l'authentification de connexion à distance sous mongodb 3.4. L'article la présente en détail à travers l'exemple de code, qui a une certaine valeur de référence et d'apprentissage pour tous les amis. j'en ai besoin Suivons l'éditeur pour apprendre ensemble.
Avant-propos
Il est assez gênant d'activer ou de désactiver la fonction d'autorisation dans mongodb. Vous devez taper mongod --auth
pour créer un. nouvelle prestation. Pour plus de commodité, j'ai créé deux services ici et je peux passer au service que j'utilise.
--需要授权 mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --auth --serviceName "MongoDBService" --serviceDisplayName "MongoDBService" --install --不需要授权 mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --serviceName "MongoDBServiceNoAuth" --serviceDisplayName "MongoDBServiceNoAuth" --install
Venons-en au fait. Après avoir configuré mongodb ici, je peux y accéder localement via db.auth('username','password')
, mais je ne peux pas y accéder à distance en utilisant le client. outils et code c#. Vérifiez que le pare-feu n'est pas activé et que la base de données mongodb est accessible par toutes les IP par défaut.
Plus tard, j'ai accidentellement vu "L'utilisation de Robomongo pour se connecter à MongoDB 3.x a signalé un échec d'autorisation" Cet article suit simplement la méthode ci-dessus.
La méthode est la suivante :
1. Tout d'abord, j'ai vérifié la version de la base de données et j'ai découvert qu'il s'agissait de la version de la base de données. cas.
> use admin switched to db admin > db.system.version.find() { "_id" : "featureCompatibilityVersion", "version" : "3.4" } { "_id" : "authSchema", "currentVersion" : 5 }
2. Activez le service MongoDBServiceNoAuth, utilisez la commande db.dropUser('username')
pour supprimer tous les utilisateurs d'origine avant , puis exécutez la version. changer de commande.
>db.dropUser('admin') >db.dropUser('root') >db.dropUser('dba') >db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
3. Créez des utilisateurs en double
> db.createUser({user:"admin",pwd:"********",roles:[{"role":"userAdminAnyDataba se","db":"admin"},{"role":"readWrite","db":"qxkf"}]}) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWrite", "db" : "qxkf" } ] }
4. Vous pouvez utiliser l'outil Robomongo pour vérifier s'il est accessible. ici.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!