Con la función de MongoDB create user puedes añadir usuarios a una base de datos y asignar roles. El método también funciona para personas con derechos de ad­mi­ni­s­tra­dor. Si quieres eliminar un usuario, utiliza el comando MongoDB drop user.

¿Qué es MongoDB create user?

La base de datos NoSQL MongoDB no solo es una excelente solución para almacenar y gestionar tus propios datos. También facilita la co­la­bo­ra­ción en equipos pequeños o grandes en sistemas de gestión de bases de datos. Sin embargo, para controlar quién tiene acceso a tus datos, crea tú mismo nuevos usuarios y co­n­cé­de­les los derechos apro­pia­dos usando create user, uno de los comandos de MongoDB. Con este comando no solo añades un nuevo usuario, sino que también puedes asignar di­re­c­ta­me­n­te uno o varios roles al re­s­pe­c­ti­vo usuario y también puedes es­ta­ble­cer una co­n­tra­se­ña para él.

La sintaxis de MongoDB create user

Para usar el comando MongoDB create user debes seguir el siguiente esquema:

db.createUser (user, writeConcern)

Además del propio comando crea­teU­ser, aquí se almacenan otras dos in­fo­r­ma­cio­nes nombradas ya por el sistema: “user” es un documento obli­ga­to­rio y contiene la au­te­n­ti­fi­ca­ción del nuevo usuario, así como toda la in­fo­r­ma­ción. "wri­te­Co­n­ce­rn" indica el nivel de au­to­ri­za­ción de la persona. Esta in­fo­r­ma­ción es opcional.

El usuario y sus pa­rá­me­tros

El documento “user”, que siempre hay que insertar en MongoDB cuando se utiliza el método “create user”, contiene varios pa­rá­me­tros im­po­r­ta­n­tes:

  • user: esta cadena contiene el nombre del nuevo usuario y es opcional.
  • pwd: en “pwd” se define una co­n­tra­se­ña para la nueva persona. Esta in­fo­r­ma­ción es siempre necesaria, a menos que se utilice el comando en una base de datos externa.
  • cu­s­to­m­Da­ta: este documento es opcional y, si se requiere, contiene toda la in­fo­r­ma­ción adicional sobre un usuario. Por ejemplo, además del nombre de usuario, puede in­tro­du­cir el nombre real del usuario.
  • roles: aquí se asignan roles in­co­r­po­ra­dos y definidos por el usuario a un “user” (usuario) concreto. La in­fo­r­ma­ción se crea en un array. Si se deja el campo en blanco, el nuevo usuario no recibe ninguna función.

El documento "user" tiene este aspecto:

{
user: "<nombre:_del_usuario>",</nombre:_del_usuario>
pwd: "<contraseña>",</contraseña>
customData: { <nombre_real, id=""> },</nombre_real,>
roles: [ { role: "<rol>", db: "<base_de_datos>" } ]</base_de_datos></rol>
}

Si trabajas con MongoDB y creas un usuario uti­li­za­n­do un nombre de usuario ya existente, recibirás un mensaje de error. Así se evita el so­la­pa­mie­n­to de ide­n­ti­da­des. Para mostrar todos los usuarios de una base de datos, usa show users o db.getUsers () en MongoDB.

Asi­g­na­ción de roles con MongoDB create user

En principio, es aco­n­se­ja­ble que asignes di­fe­re­n­tes funciones a los usuarios desde el principio. De este modo, podrás trabajar más efi­ca­z­me­n­te en equipo y, al mismo tiempo, proteger los datos sensibles contra accesos no deseados. Si quieres definir los roles, puedes hacerlo in­tro­du­cie­n­do el nombre del rol, siempre que figure en la misma base de datos. En caso contrario, debes crear un documento para definir el rol que ya existe en otra base de datos. Así es como se le otorgan a una persona varios roles con el comando MongoDB create user:

use ejemplo
db.createUser(
{
user: "nombre:_del_usuario",
pwd: "contraseña",
roles: [ "read", "dbAdmin" ]
}
);

En este ejemplo, hemos asignado al nuevo usuario dos de los roles ofrecidos por el sistema: “read” y “dbAdmin”.

MongoDB create user sin definir los roles

Si no quieres asignar funciones a un usuario, también es posible hacerlo. Sin embargo, tienes que almacenar cla­ra­me­n­te esta in­fo­r­ma­ción con create user. Esto funciona de la siguiente manera:

use ejemplo
db.createUser(
{
user: "nombre:_del_usuario",
pwd: "contraseña",
roles: [ ]
}
);

Si dejas los pa­ré­n­te­sis vacíos, el usuario no recibirá ningún rol.

MongoDB create user para los ad­mi­ni­s­tra­do­res

Si usas la función de MongoDB create user, también puedes crear usuarios con tareas ad­mi­ni­s­tra­ti­vas. Este usuario también tendrá acceso a la co­n­fi­gu­ra­ción de tu base de datos. El pro­ce­di­mie­n­to es similar al código ya conocido:

use admin
db.createUser(
{
user: "segundo_admin",
pwd: "contraseña_admin",
roles: [ { role: "readWrite", db: "config" },
"clusterAdmin"
]
}
);

Eliminar usuario con MongoDB drop user

También puedes eliminar un usuario en cualquier momento. El comando apropiado para esto es drop user, que es similar en es­tru­c­tu­ra a create user. Esta es su sintaxis:

db.dropUser (username, writeConcern)

Solo falta in­tro­du­cir el nombre del usuario:

use ejemplo
db.dropUser ("nombre_del_usuario")

Antes de eliminar un usuario con pri­vi­le­gios ad­mi­ni­s­tra­ti­vos, debes ase­gu­rar­te de que hay al menos otro usuario que tiene los permisos ne­ce­sa­rios.

Consejo

¿Quieres saber más sobre cómo usar el sistema de gestión de bases de datos MongoDB? En ese caso, te re­co­me­n­da­mos nuestros otros artículos de la Digital Guide sobre este tema:
- MongoDB create co­lle­c­tion
- MongoDB create database
- MongoDB create index

Ir al menú principal