Felet som gjordes var att jag använde en userAdminAnyDatabase
användare som INTE var i admin databas (se denna not). Så det MÅSTE vara en databas som heter admin på din server! Som dokumentationen säger för "AnyDatabase"-privilegierna:
Om du lägger till någon av dessa roller till ett användarbehörighetsdokument utanför administratörsdatabasen, kommer privilegiet inte att ha någon effekt.
Så du måste:
-
lägg till en
userAdminAnyDatabase
tilladmin
db$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
-
aktivera autentisering
auth = true setParameter = enableLocalhostAuthBypass=0
-
anslut med den nya
myadmin
användare till vilken databas du vill och lägg till ytterligare användare:$ mongo another -u myadmin -p 1234 > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
eller
> use another > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })