MongoDB create user: añadir nuevos usuarios

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 administrador. 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 colaboració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 concédeles los derechos apropiados 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 directamente uno o varios roles al respectivo usuario y también puedes establecer una contraseñ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 createUser, aquí se almacenan otras dos informaciones nombradas ya por el sistema: “user” es un documento obligatorio y contiene la autentificación del nuevo usuario, así como toda la información. "writeConcern" indica el nivel de autorización de la persona. Esta información es opcional.

El usuario y sus parámetros

El documento “user”, que siempre hay que insertar en MongoDB cuando se utiliza el método “create user”, contiene varios parámetros importantes:

  • user: esta cadena contiene el nombre del nuevo usuario y es opcional.
  • pwd: en “pwd” se define una contraseña para la nueva persona. Esta información es siempre necesaria, a menos que se utilice el comando en una base de datos externa.
  • customData: este documento es opcional y, si se requiere, contiene toda la información adicional sobre un usuario. Por ejemplo, además del nombre de usuario, puede introducir el nombre real del usuario.
  • roles: aquí se asignan roles incorporados y definidos por el usuario a un “user” (usuario) concreto. La informació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 utilizando un nombre de usuario ya existente, recibirás un mensaje de error. Así se evita el solapamiento de identidades. Para mostrar todos los usuarios de una base de datos, usa show users o db.getUsers () en MongoDB.

Asignación de roles con MongoDB create user

En principio, es aconsejable que asignes diferentes funciones a los usuarios desde el principio. De este modo, podrás trabajar más eficazmente en equipo y, al mismo tiempo, proteger los datos sensibles contra accesos no deseados. Si quieres definir los roles, puedes hacerlo introduciendo 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 claramente esta informació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 paréntesis vacíos, el usuario no recibirá ningún rol.

MongoDB create user para los administradores

Si usas la función de MongoDB create user, también puedes crear usuarios con tareas administrativas. Este usuario también tendrá acceso a la configuración de tu base de datos. El procedimiento 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 estructura a create user. Esta es su sintaxis:

db.dropUser (username, writeConcern)

Solo falta introducir el nombre del usuario:

use ejemplo
db.dropUser ("nombre_del_usuario")

Antes de eliminar un usuario con privilegios administrativos, debes asegurarte de que hay al menos otro usuario que tiene los permisos necesarios.

Consejo

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

¿Le ha resultado útil este artículo?
Page top