Gestión de usuarios de MongoDB

La gestión de usuarios en MongoDB implica operaciones como la creación de usuarios, asignación de roles, autenticación e inicio de sesión.

A continuación se muestra una explicación detallada que incluye cómo usar MongoDB Shell (mongo) o MongoDB Compass para gestionar usuarios.

Gestión de usuarios con MongoDB Shell (mongo)

A continuación se detalla la gestión de usuarios con MongoDB Shell (mongosh), incluyendo los pasos específicos para crear usuarios, asignar roles, autenticación e inicio de sesión.

1. Conectarse a MongoDB

Primero, abre tu terminal y usa el comando mongosh para conectarte al servidor MongoDB:

mongosh --host <hostname> --port <port>

Explicación:

  • mongosh:inicia la herramienta de línea de comandos MongoDB Shell.
  • --host <hostname>:especifica el nombre de host o la dirección IP del servidor MongoDB.
    • <hostname>:el nombre de host del servidor MongoDB (por ejemplo,localhost) o dirección IP (por ejemplo,127.0.0.1)。
  • --port <port>:especifica el número de puerto del servidor MongoDB.
    • <port>:el número de puerto en el que escucha el servidor MongoDB; el puerto predeterminado es27017。

2. Cambiar a la base de datos de destino

En MongoDB, los usuarios se crean para una base de datos específica; usauseel comando para cambiar a la base de datos donde deseas crear el usuario:

use <database_name>
  • database_name- es la base de datos a la que se desea cambiar.

3. Crear un usuario

Usa el comando db.createUser para crear un usuario y asignarle roles.

Por ejemplo, para crear un usuario llamado testuser, con contraseña password123, y asignarle los roles readWrite y dbAdmin:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [
    { role: "readWrite", db: "<database_name>" },
    { role: "dbAdmin", db: "<database_name>" }
  ]
})

4. Verificar el usuario

Después de crear el usuario, puedes usar el comando db.auth para verificar la identidad del usuario:

db.auth("testuser", "password123")

5. Habilitar la autenticación

Para asegurar que solo los usuarios autenticados puedan acceder a MongoDB, es necesario habilitar la autenticación.

Edita el archivo de configuración de MongoDB mongod.conf y agrega lo siguiente:

security:
  authorization: "enabled"

Luego reinicia el servicio de MongoDB para aplicar los cambios.

6. Iniciar sesión como usuario

Después de habilitar la autenticación, debes conectarte a MongoDB con el usuario creado:

mongosh --host <hostname> --port <port> -u "testuser" -p "password123" --authenticationDatabase "<database_name>"

7. Eliminar un usuario

Usadb.dropUserel comando para eliminar al usuario especificado.

Por ejemplo, para eliminar al usuario llamado testuser:

db.dropUser("testuser")

Operaciones de ejemplo

A continuación se muestra un flujo de operación de ejemplo completo:

Inicia MongoDB Shell y conéctate al servidor:

mongosh --host localhost --port 27017

Cambia a la base de datos testdb:

use testdb

Crea el usuario testuser:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [{ role: "readWrite", db: "testdb" }]
})

Habilitar la autenticación y reiniciar la instancia de MongoDB

Edita el archivo mongod.conf y agrega lo siguiente:

security:
  authorization: "enabled"

Reinicia el servicio de MongoDB:

sudo systemctl restart mongod

Conéctate autenticándote con el usuario testuser:

mongosh --host localhost --port 27017 -u "testuser" -p "password123" --authenticationDatabase "testdb"

Elimina al usuario testuser:

db.dropUser("testuser")
Otras extensiones