Je reçois une erreur suivante lors de l'authentification de l'utilisateur: achat_utilisateur @ achat a échoué. L'authentification MongoDB-CR a échoué. Informations d'identification manquantes dans le document utilisateur lorsque j'accède au service Web via un navigateur.
Mais je suis en mesure d'authentifier Purchase_user de Mongo, il retourne 1.
allez sur la console mongoDB et supprimez votre utilisateur actuel et définissez la version de authSchema sur 3 au lieu de 5, suivez ces commandes dans la console mongo -
mongo
use admin
db.system.users.remove({}) <== removing all users
db.system.version.remove({}) <== removing current version
db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })
Maintenant, redémarrez le mongod et créez un nouvel utilisateur, alors cela devrait fonctionner correctement.
Remarque: utilisez les commandes remove dans test db uniquement, si en production, utilisez update.
Avait le même problème. Ce qui m'arrivait à moi, c'est que lorsque j'ai utilisé MongoDB 3 pour créer mon utilisateur, il utilisait SCRAM-SHA-1 comme mécanisme d'authentification au lieu de MongoDB-CR. Ce que je devais faire était:
Devrait fonctionner sans problèmes maintenant.
L'étape numéro 2. ci-dessus n'est pas explicite, j'ai trouvé cette solution et travaillé pour moi.
var schema = db.system.version.findOne({"_id" : "authSchema"})
schema.currentVersion = 3
db.system.version.save(schema)
Je pense que c'est la réponse dont vous avez besoin:
1) Démarrez 3.0 sans l’autorisation activée. (L'authentification doit être désactivée sinon vous obtiendrez l'erreur non autorisée).
2) Exécuter (après avoir sélectionné "admin", utilisez db):
var schema = db.system.version.findOne ({"_id": "authSchema"})
schema.currentVersion = 3
db.system.version.save (schéma)
3) redémarrez mongodb avec l’autorisation activée.
4) Créez un nouvel utilisateur administrateur (l'ancien, celui que vous avez créé avant cette solution de contournement ne fonctionnera pas).
Les choses devraient fonctionner maintenant. Cette question me rendait fou aussi.
La réponse est venue d'ici: https://jira.mongodb.org/browse/SERVER-17459
Ajout à la solution ci-dessus de Vivek & explication prise à partir d’ici
use admin
db.system.users.remove({}) <== removing all users
db.system.version.remove({}) <== removing current version
db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })
Mettez à jour le pilote mongo-Java vers la version 3.0.3 et utilisez: -
MongoCredential.createScramSha1Credential au lieu de MongoCredential.createMongoCRCredential
MongoCredential createMongoCRCredential = MongoCredential.createScramSha1Credential (mongoConfiguration.getDatabaseUserName (), mongoConfiguration.getAuthenticationDatabase (), mongoConfiguration.getDatabasePassword),
Pour moi, j'utilisais un client mongo 2 en essayant de se connecter à un serveur mongo 3 La mise à niveau du client a résolu le problème.
J'avais aussi cette erreur.
Vérifiez votre fichier Spring Config. J'avais un constructeur appelé "MONGODB-CR" que j'ai remplacé par "SCRAM-SHA-1" et il a résolu mon problème.
suivre le fichier journal mongodb m'a aidé à diagnostiquer cela.
Cela a résolu le problème, car le paquet non officiel mongodb fourni par Ubuntu n’est pas maintenu par MongoDB. Vous devez toujours utiliser les packages officiels MongoDB mongodb-org, qui sont mis à jour avec les dernières versions majeures et mineures de MongoDB.
Probablement vieilles nouvelles, et problème résolu, mais en ajoutant mon expérience avec la même erreur:
J'ai eu exactement le même problème (avec MongoDB 3.0) et un pilote C # configuré pour utiliser une base de données antérieure à la version 3.0.
En C #, j'ai utilisé "MongoDB.Driver.CreateMongoCRCredentials ()", qui a provoqué l'erreur que l'OP obtenait.
Le correctif (pour moi), était de basculer la commande ci-dessus sur "MongoDB.Driver.CreateCredential ()".
Je suppose que cela pourrait être causé par l'utilisation "d'anciens" utilisateurs (à partir de la version 3.0) sur un système mis à niveau. Cela vous oblige soit à mettre à niveau vos utilisateurs vers le nouveau mécanisme d'authentification, soit à rétrograder le mécanisme d'authentification sur votre serveur.
Juin 2018 J'ai eu cette erreur après avoir essayé de me connecter à Mongodb version 3.6 à partir d'un ancien client installé dans/usr/bin. J'ai installé la base de données mongo dans un dossier distinct situé en dehors du répertoire standard du système d'exploitation. Mon installation était donc en conflit avec l'ancienne version installée par le gestionnaire de packages.