Crear usuarios en MongoDB 2.6

Al pasar de la versión MongoDB 2.4 a la 2.6 se ha modificado el método de crear usuarios que permitan escribir o administrar nuestras base de datos, también esta nueva versión se han habilitado nuevos roles y permisos para los usuarios. En una anterior publicación mostrábamos como habilitar la autenticación de usuarios en MongoDB , por lo que ahora vamos a crear un usuario que administre todas las base de datos y un usuario asignado a una única base de datos utilizando el método db.createUser() .

Primero, debemos crear el usuario encargado de administrar toda la instancia, por lo que iremos a la mongodb shell y ejecutaremos lo siguiente:

~$ mongo
> db.createUser({ user: "tu_admin", pwd: "tu_contraseña", roles: [{ role:"root", db: "admin" }]})

Al indicar el rol para el usuario "tu_admin", lo marcaremos como "root" ya que provee acceso de lectura/escritura de todas las base de datos así como también permisos de administración en cada una de ellas. Es de mencionar que todas los usuarios creados se almacenaran en la base de datos que lleva por nombre "admin".

Ahora, crearemos el usuario asignado a una unica base de datos, volvemos a la mongodb shell y ejecutamos:

~$ mongo
> use tu_base_de_datos
> db.createUser({ user: "tu_usuario", pwd: "tu_contraseña", roles: [ "dbOwner" ]})

Es necesario indicar con el comando use, y seleccionar la base de datos a la que se le asignara el usuario. El usuario creado deberá tener como rol de permisos el "dbOwner" , ya que permite acciones administrativas en la base de datos así como también combina privilegios de lectura/escritura y administración de usuarios.

Es de comentar que al crear estos usuarios, el primer usuario que creamos tendrá acceso de listar todas las base de datos, mientras que el segundo usuario creado tan solo podrá listar las colecciones de la base de datos a la que fue asignado. Cualquier duda que se tenga con los privilegios y roles, recomiendo leer la documentación relacionada con los roles en MongoDB.