¿Cómo puedo eliminar de forma segura los elementos de una base de datos?

2

Sé que para eliminar archivos de forma segura en un sistema tengo que aplicar algún tipo de eliminación segura (sobrescribiendo clústeres vacíos, por ejemplo).

Pero cuando quiero eliminar información de una base de datos (Oracle o MySQL), ¿se elimina por completo?

Quiero decir, tengo una base de datos en ejecución y no quiero eliminar toda la base de datos, solo algunos registros, pero quiero estar seguro de que esos registros no se puedan restaurar. ¿La función de borrado de dbms es suficiente?

Considero que no existe ninguna otra copia de la información (no hay copia de seguridad de la base de datos).

He leído algo relacionado con esto en Microsoft Access aquí , y dicen que después de eliminar los datos permanecen en la base de datos hasta que se use ese espacio (o la base de datos se "compacta y se repara"). ¿Esto sucede también en Oracle y MySQL?

Gracias de antemano.

    
pregunta BrainSCAN 06.03.2015 - 10:28
fuente

1 respuesta

2

Hay dos formas de responder esto. La primera forma sigue su línea de pensamiento, la otra no.

Si bien es difícil estar seguro para una base de datos específica, debido a la falta de espacio (es decir, no reducir el tamaño del archivo de datos cuando se eliminan las cosas), el registro en diario y otras funciones de la base de datos, sospecho que lo siguiente es razonablemente suficiente para sistema como InnoDB:

  • Haga un UPDATE en las filas para reemplazar todos los datos con datos en blanco de la misma longitud. Entonces, si tienes Polynomial en una celda, lo reemplazas con AAAAAAAAAA .
  • Eliminar las filas como de costumbre.
  • Agregue un montón de nuevas filas con manchas grandes de datos ficticios.
  • Eliminar esas filas.
  • Baje la base de datos y ejecute una operación de reducción / compactación / re-indexación.

Esto no está garantizado para hacer el trabajo, porque las implementaciones de la base de datos tienen todo tipo de comportamiento extraño, pero en la mayoría de los casos al menos será más difícil recuperar los datos. De hecho, en un entorno de alto uso, sospecho que el espacio vacío de la fila se sobrescribe bastante rápido.

Pero aquí está la respuesta más completa: su modelo de amenaza en este caso parece ser que alguien ha capturado el archivo de la base de datos. Entonces, ¿por qué no cifrarlo? El cifrado completo del disco es computacionalmente barato (y LUKS es fácil de configurar) y ayudaría a evitar que alguien acceda al archivo de la base de datos desde un disco robado.

    
respondido por el Polynomial 06.03.2015 - 11:28
fuente

Lea otras preguntas en las etiquetas