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