Unidad 6: Seguridad en BBDD Relacionales Flashcards
Seguridad de Información
Está vinculada a:
- Leyes vigentes
- Ley 25326: Ley de protección de Datos Personales
- GDPR (General Data Protection Regulation)
- Normas ISO 27000 (27001: 2022 / 27002: 2022)
Asegura la información en tres dimensiones:
- Confidencialidad
- Integridad
- Disponibilidad
Confidencialidad
Asegura que sólo quienes estén autorizados pueden acceder a la información
Integridad
Asegura que la información y sus métodos de proceso son exactos y completos
Disponibilidad
Asegura que los usuarios autorizados tienen acceso a la información y a sus activos asociados cuando lo requieran.
Integridad y Disponibilidad
En bases de Datos Relacionales:
- Respeto a las características del modelo relacional
- Resistencia a fallos garantizada a través del Modelo de transacciones
Modelos de Transacciones
Desde el punto de vista del:
Usuario: Operaciones con significado en el modelo semántico.
Base de datos: Varias operaciones elementales que deben ejecutarse como una unidad lógica.
Transacción
Conjunto de operaciones que se ejecutan como única operación lógica.
Están delimitadas por instrucciones de inicio de trascaccion y fin de transaccion
El uso de las transacciones está condicionado a que el sistema sea:
- MonoUsuario
- MultiUsuario (Existe concurrencia)
Propiedades de las transacciones
ACAD
- Atomicidad
- Consistencia
- Aislamiento
- Durabilidad
Atomicidad
(Realización completa)
Se debe considerar una única operación lógica, aunque esté formada por varias operaciones simples que deben ejecutarse en forma completa o no ejecutarse.
Consistencia
(Conservación de Coherencia)
Debe asegurarse incluso aunque varias transacciones se efectúen concurrentemente
Aislamiento
(Concurrencia no problemática)
Debe mantenerse el nivel de concurrencia en función de los accesos que tendrán lo usuarios
Durabilidad
(Pemanencia de los Cambios)
Tras una transacción, los nuevos valores de la BBD deben mantenerse a pesar de cualquier tipo de fallo del sistema.
Estados de la base de datos
- Consistente
- Inconsistente
Consistente
Si una base de datos es consistente antes de ejecutar una transaccion, tiene que seguir siéndolo después de ejecutar dicha transacción.
Inconsistente
Hay que asegurarse que las inconsistencias no sean visibles en un sistema de base de datos. Los estados inconsistentes sólo deben aparecer durante la ejecución de las transacciones.
Estado de las Transacciones
- Activa: Estado inicial. La transacción permanece en este estado durante su ejecución.
- Parcialmente comprometida: La treansacción pasa a este estado cuando acaba de realizar la última instrucción.
- Fallida: La transacción pasa a este estado tras descubrir que no puede continuar la ejecución normal
- Abortada: La transacción pasa a este estado después de haber restablecido la base de datos a su estado anterior (Se realiza un ROLLBACK implícito).
- Comprometida: La transacción pasa a este estado tras completarse con éxito luego de la marca de fin de transacción (COMMIT)
Ejecución de las transacciones
En la medida que se ejecutan las transacciones se registran en el archivo de bitácora o log de transacciones.
Ejecución de las transacciones (SERVICIOS)
- Transparencia de recuperación: Restaura a un estado consistente después de una falla.
- Transparencia de concurrencia: Los usuarios perciben la base de datos como un sistema monousuario
Concurrencia
La ejecución de varias transacciones en forma concurrente permite:
- Mejorar la productividad
- Mejorar la utilización de recursos
- Reducir el tiempo de espera
Pero puede:
- Destruir la consistencia de la base de datos
Necesidad del control de concurrencia
Problemas de:
- Actualización perdida por intercalación de operaciones.
- Lectura sucia
- Lectura fantasma
- Lectura no repetible
Actualización perdida por intercalación de operaciones
Cuando la actualización de un usuario sobrescribe la de otro
Lectura sucia
Se leen datos que otra transacción ha modificado sin que la misma se haya confirmado (no se ejecutó el COMMIT)
Lectura fantasma
Es cuando, por ejemplo, una transacción lee datos con ciertas condiciones de registro, otra transacción inserta datos que la consulta no recuperó. Por último, la consulta original se vuelve a ejecutar y se encuentra con registros que inicialmente no existían. Los registros nuevos son “fantasmas” porque no existían en la consulta original.
Lectura no repetible
Se leen los mismos datos más de una vez en una transacción y los mismos no coinciden