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
userAdminAnyDatabase
all'admin
db$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
-
attiva l'autenticazione
auth = true setParameter = enableLocalhostAuthBypass=0
-
connettiti usando il nuovo
myadmin
utente 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"] })