Otra posibilidad: cuando creó el usuario, es posible que haya estado useingresando accidentalmente en una base de datos admindiferente a la que deseaba. Debe establecer --authenticationDatabasela base de datos con la que se creó el usuario.
mongodbparece colocarte en la testbase de datos de forma predeterminada cuando abres el shell, por lo que deberías escribir en --authenticationDatabase testlugar de hacerlo --authenticationDatabase adminsi accidentalmente estuvieras useing testcuando ejecutaras db.createUser(...).
Suponiendo que tenga acceso a la máquina que está ejecutando la instancia de mongodb, podría deshabilitar la autorización de entrada /etc/mongod.conf(comentar authorizationque está anidado bajo seguridad), y luego reiniciar su servidor, y luego ejecutar:
mongo
show users
Y puede obtener algo como esto:
{
"_id" : "test.myusername",
"user" : "myusername",
"db" : "test",
"roles" : [
{
"role" : "dbOwner",
"db" : "mydatabasename"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
Observe que el dbvalor es igual test. Eso es porque cuando creé el usuario, primero no ejecuté use admino use desiredDatabaseName. Entonces puede eliminar el usuario con db.dropUser("myusername")y luego crear otro usuario en la base de datos deseada así:
use desiredDatabaseName
db.createUser(...)
Con suerte, eso ayudará a alguien que estaba en mi posición como novato con estas cosas.