sql >> Database >  >> NoSQL >> MongoDB

Welke MongoDB-gebruikersrechten heb ik nodig om een ​​gebruiker toe te voegen aan een nieuwe/andere mongo-database?

De gemaakte fout was dat ik een userAdminAnyDatabase . gebruikte gebruiker die NIET . was in de beheerder databank (zie deze opmerking). Dus er MOET een database zijn met de naam admin op uw server! Zoals de documentatie zegt voor de "AnyDatabase"-rechten:

Als u een van deze rollen toevoegt aan een document met gebruikersprivileges buiten de beheerdersdatabase, heeft het privilege geen effect.

Dus je moet:

  • voeg een userAdminAnyDatabase toe naar de admin db

    $ mongo admin
    > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
    
  • verificatie inschakelen

    auth = true
    setParameter = enableLocalhostAuthBypass=0
    
  • maak verbinding met de nieuwe myadmin gebruiker naar elke gewenste database en voeg meer gebruikers toe:

    $ mongo another -u myadmin -p 1234
    > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
    

    of

    > use another
    > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
    


  1. MongoDB Stitch gebruiken in Android-apps

  2. Asynchrone uitvoering van redis-opdrachten

  3. MapReduce met MongoDB echt, erg traag (30 uur versus 20 minuten in MySQL voor een vergelijkbare database)

  4. Hoe som in MongoDB optellen om een ​​totaal aantal te krijgen?