Problem polega na tym, że użytkownik bazy danych jest tworzony na admin
baza danych zamiast dbname
.
Pominięcie /dbname
z ciągu połączenia / mongo shell / etc. oznacza, że ciąg połączenia zostanie uwierzytelniony przez admin
Baza danych. Cytując dokumenty:
(https://docs.mongodb.com/manual/reference/connection -string/#komponenty ).
Jeśli /dbname
jest zdefiniowany, ciąg połączenia zostanie uwierzytelniony względem dbname
chyba że authSource
parametr jest skonfigurowany do określenia bazy danych, w której rezyduje użytkownik.
Możesz to potwierdzić, dodając authSource=admin
do ciągu połączenia lub --authenticationDatabase admin
do polecenia powłoki mongo
.
Alternatywnie możesz użyć db.getUsers()
aby zobaczyć bazę danych, w której utworzono użytkownika.