Maison > base de données > tutoriel mysql > le corps du texte

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

零下一度
Libérer: 2017-07-03 16:33:20
original
1197 Les gens l'ont consulté

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
Copier après la connexion

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 }
Copier après la connexion

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}})
Copier après la connexion

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"

    }

  ]

}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal