Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Proteger la base de datos de borrados accidentales.

Estas en el tema de Proteger la base de datos de borrados accidentales. en el foro de Mysql en Foros del Web. Hola. Me encuentro ante el problema que es posible, que de forma accidental un usuario privilegiado pueda borrar una base de datos de forma local ...
  #1 (permalink)  
Antiguo 16/04/2008, 07:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Proteger la base de datos de borrados accidentales.

Hola.
Me encuentro ante el problema que es posible, que de forma accidental un usuario privilegiado pueda borrar una base de datos de forma local o remota mientras otros usuarios se encuentren conectados aún a ella (es decir, los objetos MysqlConnect aún están vivos).
El tema es que debo poder bloquear totalmente la posibilidad de borrar esa base mientras haya conexiones activas, pero no encuentro en el manual de referencia ninguna mención de un lock a nivel de base de datos, o a nivel de tablas que impida el borrado de una base completa.
¿Alguien tiene idea cómo podría hacer para evitar este embrollo?

Gracias.
  #2 (permalink)  
Antiguo 16/04/2008, 11:22
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Proteger la base de datos de borrados accidentales.

Pues ahora se me ocurre que puedas hacer un respaldo mediante triggers, para que cada vez que alguien borre lo vuelva a crear, aun que no lo veo tan eficiente.

La otra opción es que al usuario le des privilegios y le quita el privilegio de borrar

Saludos!
  #3 (permalink)  
Antiguo 16/04/2008, 12:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Proteger la base de datos de borrados accidentales.

Me temo que no es solución.

El problema no es recrear la base (cosa que ya está considerada, puesto que se crea de nuevo si la aplicación al iniciar no la encuentra), sino impedir que mientras la base esté siendo leída o actualizada alguien, accidentalmente o no, pueda borrarla.

Me explico: La aplicación requiere por razones de diseño de sistema que pueda ser accedida desde diversos puntos por usuarios privilegiados (superusuarios). El por qué, es políticas del negocio. No puedo hacer nada para evitarlo.

Esto hace que en un momento dado, uno o más usuarios puedan borrar, no sólo el contenido (cosa manejable por lock a tablas), sino la base misma.

No encuentro cómo, ni a nivel SO ni MySQL pueda evitar que eso ocurra mientras haya conexiones activas, con lo que repentinamente un usuario de consultas se encontrará que no puede acceder más a la base.

Los backups no son solución porque el problema es la concurrencia de las conexiones, no la restauración de la estructura o sus datos anteriores.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:55.