👤 Gestión de usuarios y roles
En MongoDB, la gestión de usuarios y roles permite controlar quién puede acceder a tu base de datos y qué operaciones puede realizar. Es fundamental para mantener la seguridad y proteger tus datos.
📘 1️⃣ Usuarios y autenticación
MongoDB requiere autenticación para acceder a las bases de datos. Cada usuario tiene un nombre, contraseña y un conjunto de roles que definen sus permisos.
Los usuarios se crean a nivel de base de datos, normalmente en admin para permisos globales.
// Crear un usuario administrador
use admin
db.createUser({
user: "admin",
pwd: "ContraseñaSegura123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
});
⚙️ 2️⃣ Roles predefinidos
MongoDB ofrece roles predefinidos que puedes asignar según necesidades:
- read: Solo lectura en la base de datos.
- readWrite: Lectura y escritura en la base de datos.
- dbAdmin: Gestión de índices, estadísticas y usuarios dentro de la base de datos.
- userAdmin: Gestiona usuarios y roles en la base de datos.
- readWriteAnyDatabase: Lectura/escritura en todas las bases de datos.
- userAdminAnyDatabase: Gestiona usuarios en todas las bases de datos.
- root: Acceso total a todo el servidor MongoDB.
🧩 3️⃣ Crear usuarios específicos para una aplicación
Por ejemplo, para una aplicación de tienda online, podrías crear un usuario limitado:
use tiendaonline
db.createUser({
user: "appUser",
pwd: "ContraseñaApp123",
roles: [ { role: "readWrite", db: "tiendaonline" } ]
});
Este usuario solo podrá leer y escribir datos dentro de la base de datos tiendaonline, no podrá administrar usuarios ni acceder a otras bases de datos.
🧠 4️⃣ Autenticación en la conexión
Al conectar tu aplicación a MongoDB, deberás usar las credenciales del usuario creado:
const uri = "mongodb+srv://appUser:ContraseñaApp123@cluster0.mongodb.net/tiendaonline"; const client = new MongoClient(uri); await client.connect();
🔧 5️⃣ Buenas prácticas
- Crear usuarios con permisos mínimos necesarios (principio de mínimo privilegio).
- No usar el usuario
adminpara aplicaciones normales. - Cambiar contraseñas regularmente y usar contraseñas fuertes.
- Auditar accesos y revisar roles periódicamente.
- Para entornos de producción, habilitar TLS/SSL y autenticación SCRAM-SHA-256.
🧭 6️⃣ Resumen rápido
- Los usuarios definen quién puede acceder y qué operaciones realizar.
- Los roles determinan los permisos específicos de cada usuario.
- Usa roles predefinidos o crea roles personalizados según tus necesidades.
- Aplica buenas prácticas de seguridad y mínimo privilegio.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias