Otra posibilidad: cuando creó el usuario, es posible que haya estado use
ingresando accidentalmente en una base de datos admin
diferente a la que deseaba. Debe establecer --authenticationDatabase
la base de datos con la que se creó el usuario.
mongodb
parece colocarte en la test
base de datos de forma predeterminada cuando abres el shell, por lo que deberías escribir en --authenticationDatabase test
lugar de hacerlo --authenticationDatabase admin
si accidentalmente estuvieras use
ing test
cuando 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 authorization
que 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 db
valor es igual test
. Eso es porque cuando creé el usuario, primero no ejecuté use admin
o 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.