MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Di quali privilegi utente MongoDB ho bisogno per aggiungere un utente a un nuovo/altro database mongo?

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"] })