O problema é que o usuário do banco de dados está sendo criado no
admin
banco de dados em vez de dbname
. Omitindo o
/dbname
da string de conexão / shell do mongo / etc. significa que a string de conexão será autenticada no admin
base de dados. Citando os documentos:(https://docs.mongodb.com/manual/reference/connection -string/#components ).
Se
/dbname
for definido, a string de conexão será autenticada em dbname
a menos que authSource
O parâmetro está configurado para especificar o banco de dados no qual o usuário reside. Você pode confirmar que este é o caso adicionando
authSource=admin
para a string de conexão ou --authenticationDatabase admin
para o comando do shell do mongo
. Alternativamente, você pode usar
db.getUsers()
para ver o banco de dados no qual um usuário foi criado.