← Volver al inicio

Permisos y Auditoria en Bases de Datos

Objetivo

Entender roles, permisos y monitoreo de actividad.

Usuarios y Roles

Una base de datos puede tener usuarios y roles.

Ejemplos:

  • App read/write limitada.
  • Analista read-only.
  • DBA admin.
  • Servicio de backup.

El objetivo no es crear muchos roles por crear complejidad. El objetivo es que cada identidad tenga una razon clara para existir, permisos limitados y evidencia revisable.

Una identidad puede ser:

  • Persona: DBA, analista, desarrollador.
  • Servicio: aplicacion, worker, tarea programada, backup.
  • Integracion: BI, ETL, monitoreo, auditoria.

Cada una debe responder:

  • Para que existe?
  • Quien es responsable?
  • Desde donde se conecta?
  • Que datos necesita?
  • Que acciones puede ejecutar?
  • Cuando se reviso por ultima vez?

Minimo Privilegio

La app debe tener solo permisos necesarios.

Mal:

App usa cuenta DBA.

Mejor:

App puede leer/escribir tablas necesarias, no administrar servidor.

Modelo de Roles Sugerido

RolUsoPermisos tipicosRiesgo si se abusa
app_rwBackend principalLeer/escribir tablas necesariasModificacion o lectura de datos de negocio
app_readonlyConsultas internasSolo lectura limitadaExfiltracion si lee demasiado
analyst_roAnalisis/BIVistas o tablas anonimizadasFuga de PII o secretos
backup_svcRespaldosLectura/exportacion controladaFuga masiva por dumps
migration_svcMigracionesCambios de esquema controladosAlteracion de estructura
dba_adminAdministracionPrivilegios altosControl total de DB

La cuenta admin debe usarse solo para administracion real, no para operacion diaria de la app.

Permisos Peligrosos

Estos permisos requieren justificacion fuerte:

  • Crear usuarios.
  • Modificar roles.
  • Otorgar permisos a otros.
  • Ejecutar comandos del sistema desde DB.
  • Leer todas las bases o esquemas.
  • Exportar datos completos.
  • Desactivar auditoria.
  • Modificar logs o configuracion de seguridad.

No siempre se llaman igual en cada motor, pero el criterio es el mismo: si permite ampliar privilegios, borrar evidencia o extraer todo, es sensible.

Separacion de Ambientes

Ambientes:

  • Desarrollo.
  • Pruebas.
  • Produccion.

Riesgo:

  • Copiar datos reales a desarrollo sin proteccion.

Buenas practicas:

  • Produccion tiene controles mas estrictos.
  • Desarrollo usa datos sinteticos o anonimizados.
  • Las credenciales de desarrollo no sirven en produccion.
  • Las redes de dev/test no tienen acceso directo a produccion.
  • Los backups de produccion no se restauran en equipos personales.

Auditoria

Eventos importantes:

  • Login exitoso/fallido.
  • Cambios de permisos.
  • Creacion de usuarios.
  • Consultas a tablas sensibles.
  • Exportaciones masivas.
  • Cambios de esquema.

La auditoria debe ayudar a contestar:

  • Quien accedio?
  • Desde donde?
  • A que datos?
  • Que cambio?
  • Cuando ocurrio?
  • Fue normal para ese usuario?
  • Hay evidencia suficiente para investigar?

Auditar todo sin criterio puede generar demasiado ruido. Lo importante es registrar eventos de seguridad y operaciones sensibles con suficiente contexto.

Alertas

Ejemplos:

  • Usuario nuevo con rol admin.
  • Muchos logins fallidos.
  • Exportacion fuera de horario.
  • Consulta masiva a datos sensibles.
  • Acceso desde IP inusual.

Senales de Riesgo

SenalPosible explicacionAccion inicial
Muchos logins fallidosFuerza bruta, error de app o credencial viejaRevisar origen, usuario y patron
Nuevo usuario adminCambio autorizado o escalacion indebidaConfirmar ticket/aprobacion
Exportacion grandeBI, backup o exfiltracionValidar owner, horario y destino
Acceso fuera de pais/regionVPN legitima o cuenta comprometidaCorrelacionar con identidad y MFA
Cambios de esquema no planeadosDeploy, migracion o actividad maliciosaRevisar pipeline y usuario
Auditoria desactivadaMantenimiento o intento de ocultar actividadEscalar de inmediato

Matriz de Permisos

Matriz de ejemplo:

IdentidadPermisoJustificacionRiesgoControl

Incluye:

  • App.
  • Analista.
  • DBA.
  • Backup.

Ejemplo:

IdentidadPermisoJustificacionRiesgoControl
app_rwSELECT/INSERT/UPDATE en tablas de negocioFuncionamiento de la appAbuso si app se comprometeConsultas parametrizadas, red privada, logs
analyst_roSELECT en vistas anonimizadasReportesFuga de informacionSin PII, MFA, auditoria
backup_svcLectura/exportacion controladaRespaldosDump completo robadoCifrado, storage privado, rotacion
dba_adminAdministracionMantenimientoControl totalJIT, MFA, aprobacion, logs

Revision Periodica

Una revision util busca:

  • Cuentas sin uso.
  • Llaves o passwords antiguos.
  • Permisos wildcard.
  • Usuarios personales con privilegios permanentes.
  • Roles duplicados.
  • Accesos de proveedores.
  • Cuentas compartidas.
  • Logs desactivados.

La pregunta central es: si esta identidad se compromete hoy, que puede hacer?

Criterio de Dominio

Puedes avanzar cuando puedas:

  • Diseñar roles basicos.
  • Identificar permisos excesivos.
  • Proponer auditoria.
  • Crear alertas de DB conceptuales.
  • Explicar por que una cuenta de aplicacion no debe ser DBA.
  • Revisar una matriz de permisos y detectar riesgos.