Popełniony błąd polegał na tym, że używałem userAdminAnyDatabase
użytkownik, który NIE w sekcji administrator bazy danych (patrz ta uwaga). Więc tam MUSI być bazą danych o nazwie admin na twoim serwerze! Jak mówi dokumentacja dla uprawnień „AnyDatabase”:
Jeśli dodasz którąkolwiek z tych ról do dokumentu uprawnień użytkownika poza bazą danych administratora, uprawnienia nie będą miały żadnego wpływu.
Musisz więc:
-
dodaj
userAdminAnyDatabase
doadmin
db$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
-
włącz uwierzytelnianie
auth = true setParameter = enableLocalhostAuthBypass=0
-
połącz się za pomocą nowego
myadmin
użytkownika do dowolnej bazy danych i dodaj kolejnych użytkowników:$ mongo another -u myadmin -p 1234 > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
lub
> use another > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })