L'erreur commise était que j'utilisais un userAdminAnyDatabase
utilisateur qui n'était PAS dans l'admin base de données (voir cette note). Donc il DOIT être une base de données appelée admin sur votre serveur ! Comme le dit la documentation pour les privilèges "AnyDatabase":
Si vous ajoutez l'un de ces rôles à un document de privilège d'utilisateur en dehors de la base de données d'administration, le privilège n'aura aucun effet.
Vous devez donc :
-
ajouter un
userAdminAnyDatabase
à l'admin
db$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
-
activer l'authentification
auth = true setParameter = enableLocalhostAuthBypass=0
-
connectez-vous en utilisant le nouveau
myadmin
utilisateur à la base de données de votre choix et ajoutez d'autres utilisateurs :$ mongo another -u myadmin -p 1234 > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
ou
> use another > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })