MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

De quels privilèges d'utilisateur MongoDB ai-je besoin pour ajouter un utilisateur à une nouvelle/autre base de données mongo ?

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