L'errore commesso è stato che stavo usando un userAdminAnyDatabase utente che era NON nell'amministratore database (vedi questa nota). Quindi ci DEVE essere un database chiamato admin sul tuo server! Come dice la documentazione per i privilegi "AnyDatabase":
Se aggiungi uno di questi ruoli a un documento di privilegio utente al di fuori del database di amministrazione, il privilegio non avrà effetto.
Quindi devi:
-
aggiungi un
userAdminAnyDatabaseall'admindb$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] }) -
attiva l'autenticazione
auth = true setParameter = enableLocalhostAuthBypass=0 -
connettiti usando il nuovo
myadminutente a qualsiasi database che desideri e aggiungi altri utenti:$ mongo another -u myadmin -p 1234 > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })o
> use another > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })