Natknąłem się na ten sam problem, więc mogę pomóc wyjaśnić, w jaki sposób Mongo przeprowadza uwierzytelnianie. Widzisz, co zrobiłeś, to utworzyłeś administratora w bazie danych administratora, co jest świetne. Jednak próbujesz połączyć się z "mydb" bezpośrednio z administratorem, co jest niedozwolone. Dźwięk mylący? To dlatego, że tak jest. Aby lepiej to zilustrować, oto proste ćwiczenie:
- Utwórz użytkownika dla bazy danych administratora, tak jak powyżej.
- wyjdź z powłoki mongo
- biegnij za
To się nie powiedzie. Ale spróbuj tego.
To zadziała, ponieważ przełączyłeś się na tę bazę danych z kontekstem administratora i nie próbowałeś połączyć się z nią bezpośrednio.
Więc wszystko, co musisz zrobić, aby to zadziałało, to połączyć się bezpośrednio z wybraną bazą danych i utworzyć użytkownika bezpośrednio w tej bazie danych w następujący sposób:
Zaktualizuj swój plik konfiguracyjny Grails za pomocą tego i założę się, że zadziała.
Zauważ, że tylko ostatnia część to twoja odpowiedź i rozwiązuje twój problem, ale ponieważ walczyłem z tym i zrozumiałem to na własnej skórze, myślę, że kontekst naprawdę pomaga lepiej zrozumieć mongo auth.
Uważaj