Maison  >  Article  >  base de données  >  Que dois-je faire si l'authentification de la connexion à distance échoue sous mongodb 3.4 ?

Que dois-je faire si l'authentification de la connexion à distance échoue sous mongodb 3.4 ?

零下一度
零下一度original
2017-07-03 16:33:201149parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn