¿Qué tipo de información de auditoría se almacena servidor SQL cuando se realiza una operación CREATE TABLE o ALTER TABLE?

StackOverflow https://stackoverflow.com/questions/984558

  •  13-09-2019
  •  | 
  •  

Pregunta

La inspiración para esta pregunta es un procedimiento almacenado se rompió en mí porque llamó a otro procedimiento almacenado que inserta datos en una tabla cuyo esquema estaba completamente alterado.

La cuestión es que hay una tabla en una base de datos SQL Server, y no se sabe cómo llegó hasta allí. Usted no tiene ninguna DDL desencadena efectos de la información de auditoría personalizado, y no hay ningún registro en su repositorio de control de código fuente de la DDL tablas. Usando sólo SQL Server, lo forense de los datos se puede obtener sobre la mesa.

Yo mismo, y el que se tropieza a través de esta pregunta en una situación similar, no va a ser ayudado por sugerencias en relación con el control de versiones y desencadenadores DDL. Esas son las soluciones hacia adelante gran go, y hay un montón de información en este blog sobre estos temas, si la política corporativa nos permite implementar esas soluciones. Lo que yo, y la gente en mi situación realmente necesita es ser capaz de reunir la mayor cantidad de fragmentos de datos como sea posible desde el servidor SQL, para combinar con cualquier otro dato que podemos llegar a.

¿Fue útil?

Solución

Desafortunadamente, no hay manera de reconstruir lo que sucedió, excepto:

  • Si los administradores de bases tienen rastros de funcionamiento y la historia. SQL Server 2005 tiene un rastreo por omisión y no es la huella "caja negra", pero éstos se utilizan para averiguar lo que sucedió justo antes de un accidente

  • Si usted tiene modelo de recuperación completa, entonces puede intentar una herramienta visor de registro ( libre de Red Gate uno )

  • dependiendo de la actividad y su modelo de seguridad, se puede también comprobar el registro de seguridad de Windows para ver quién ha iniciado sesión con privilegios de DDL

  • los registros de sucesos SQL también pueden tener información. Por ejemplo, si se ha habilitado el indicador de traza que registra los errores "permiso", a continuación, se puede ver cuando empezó. O la persona que hizo el cambio puede haber generado otras excepciones que se registran

  • que se puede pedir aquellos con derechos. Podría ser un error genuino (por ejemplo, piensan que estaban en dev)

Otros consejos

La siguiente consulta me consiguió el crear y modificar una duración de tiempo.

SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbTableInQuestion]') AND type in (N'U')

Usted debe ser capaz de encontrar la creación de la tabla en el . de registro de transacciones nunca he utilizado ninguna de las herramientas de visualización aquí, y yo no podría decir cómo buscar atrás en el tiempo para esto, pero todo lo que sucede en una transacción, por lo que es tiene que iniciar sesión - incluso el tablas del sistema ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top