sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Qué privilegios de usuario de MongoDB necesito para agregar un usuario a una base de datos mongo nueva/otra?

El error cometido fue que estaba usando un userAdminAnyDatabase usuario que NO en el administrador base de datos (ver esta nota). Entonces DEBE ser una base de datos llamada admin en su servidor! Como dice la documentación para los privilegios de "AnyDatabase":

Si agrega cualquiera de estos roles a un documento de privilegios de usuario fuera de la base de datos de administración, el privilegio no tendrá efecto.

Entonces debes:

  • agregue un userAdminAnyDatabase al admin base de datos

    $ mongo admin
    > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
    
  • activar la autenticación

    auth = true
    setParameter = enableLocalhostAuthBypass=0
    
  • conectarse usando el nuevo myadmin usuario a cualquier base de datos que desee y agregue más usuarios:

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