Autre possibilité: lors de la création de l'utilisateur, vous avez peut-être été accidentellement dans useune base de données autre que admincelle que vous vouliez, ou autre. Vous devez définir --authenticationDatabasela base de données sous laquelle l'utilisateur a été réellement créé.
mongodbsemble vous mettre dans la testbase de données par défaut lorsque vous ouvrez le shell, de sorte que vous aurez besoin d'écrire --authenticationDatabase testplutôt que --authenticationDatabase adminsi vous étiez accidentellement useING testlors de l' exécution db.createUser(...).
En supposant que vous ayez accès à la machine qui exécute l'instance mongodb, y pourrait désactiver l'autorisation d' /etc/mongod.confentrée (commentaire authorizationqui est imbriqué sous sécurité), puis redémarrer votre serveur, puis exécuter:
mongo
show users
Et vous pourriez obtenir quelque chose comme ceci:
{
"_id" : "test.myusername",
"user" : "myusername",
"db" : "test",
"roles" : [
{
"role" : "dbOwner",
"db" : "mydatabasename"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
Notez que la dbvaleur est égale à test. C'est parce que lorsque j'ai créé l'utilisateur, je n'ai pas exécuté use adminou use desiredDatabaseName. Ainsi, vous pouvez supprimer l'utilisateur avec db.dropUser("myusername"), puis créer un autre utilisateur sous la base de données souhaitée comme suit:
use desiredDatabaseName
db.createUser(...)
J'espère que cela aide quelqu'un qui était dans ma position de noob avec ce truc.