2009-05-22 19 views
6

En algunas de mis tablas en mi base de datos SQL Server 2005, todos mis datos han sido borrados. ¿Hay alguna forma de obtener un registro en SQL Server de todas las declaraciones que se han ejecutado el día anterior? Estoy tratando de averiguar si alguien hizo esto por accidente, hay una vulnerabilidad en mi aplicación web, o la base de datos real se ha visto comprometida.¿Cómo falló la seguridad de mi base de datos?

+6

No hay problemas de inyección de SQL, espero? –

Respuesta

2

Consulte lo siguiente hay un par de programas que le permitirán leer el registro.

http://sqlserver2000.databases.aspfaq.com/how-do-i-recover-data-from-sql-server-s-log-files.html

El de Red Gate is called SQL Rescue y se ve muy bien.

+0

En realidad, puede dividir el registro de transacciones y determinar qué se ejecutó en la base de datos. Sin embargo, estos están en un formato de archivo patentado e indocumentado. Esté atento a las herramientas que pueden hacer esto. Desafortunadamente, no tengo una recomendación. –

+0

@Redbeard: me equivoqué y actualicé mi respuesta. ¡Gracias! – NotMe

2

usted podría intentar una herramienta de rescate de registro como Log Rescue

También me gustaría resolver algunos de su propia auditoría.

Entrar rescate no es compatible con SQL 2005 por lo que también podría intentar Apex SQL Log

+0

La página de Log Rescue indica que no es compatible con SQL 2005 (que es lo que OP está utilizando) –

1

Ejemplos de las aplicaciones que se pueden comprar que puede convertir una copia de seguridad del registro de transacciones en las cuentas reales que se ejecutan. Es posible que pueda encontrar una versión de prueba de algunos de estos, lamentablemente no puedo recomendar ninguno específico.

3

Está buscando el registro de transacciones . Dependiendo de cómo y si está configurado, podrá ver lo que se ejecutó. Hay algo de información al http://www.databasedesign-resource.com/sql-server-transaction-log.html. Dado eso, estoy seguro de que también puedes buscar un recurso mejor en Google.

+0

Mi comprensión del registro de transacciones es que * no * almacena el texto de las sentencias SQL ejecutadas contra el servidor, pero el ubicaciones y contenido de páginas que se vieron afectadas en cada transacción. El registro es útil para avanzar transacciones hacia adelante o hacia atrás para restauraciones puntuales, pero, hasta donde yo sé, inútil para análisis forense. –

+0

Conclusión de la terminología, creo. MySQL, por ejemplo, llama al registro que describió el registro de transacciones. El "registro binario" de MySQL es equivalente al "registro de transacciones" de SQL Server. –

1

Algo más a tener en cuenta: si un pirata informático obtuvo suficiente acceso para limpiar algunas tablas, es muy probable que obtuviera suficiente acceso para abrirse camino con sus archivos de registro también.

3

También podría intentar ejecutar el comando DBCC LOG (base de datos, 3). Emitirá los datos que están en el registro de transacciones.

1

Realice una copia de seguridad del registro de transacciones en SQL Server, descargue una versión de prueba de TOAD para SQL Server allí puede importar su copia de seguridad de Transactionlog.

Y si lo desea, también puede crear INSERTAR secuencias de comandos de los registros ELIMINADOS. Pero no sé si hay restricciones en la versión de prueba de TOAD.

Cuestiones relacionadas