Pregunta

¿Hay una manera integrada en SQL Server 2005 para auditar cosas específicamente como borrar un procedimiento almacenado? ¿Hay una tabla de historial que puedo consultar? Tenemos un sproc misterio que ha desaparecido un par de veces ahora.

¿Fue útil?

Solución

Puede construir este utilizando desencadenadores DDL:

http://msdn.microsoft.com/en-us/library /ms190989.aspx

Otros consejos

Sólo si se utiliza desencadenadores DDL o utilizar perfiles para trazar texto "% DROP PROC%%% nombreproc"

Tenga en cuenta que en SQL Server 2008 que también tienen ahora AUDITORÍA para reemplazar trazas del Analizador de actividades AUDING. Es similar pero tiene su propia interfaz de usuario de configuración y la interfaz de usuario para ver los resultados

Puede configurar una traza del analizador para capturar el evento de administración de objetos de esquema auditar y el filtro basado en el nombre de base de datos que le interesan. Cada vez que se crea un objeto en el esquema, caído, editado que se disparará un evento en el generador de perfiles que incluye la persona que hizo el cambio y el nombre del procedimiento almacenado.

Usted querrá al menos estas columnas de perfil: ApplicationName - nombre de usuario de la aplicación se ejecuta cuando se hizo el cambio DatabaseName - Databse que contiene el objeto cambió EventSubClass - Tipo de acción muestra alterar, modificar, gota, etc Crear LoginName - usuario que realiza el cambio ObjectName - objeto afectado

[una tarde, pero añade detalles sobre cómo ver quién hizo el cambio incluso antes de sistema de auditoría se pone en su lugar]

Otros ya han cubierto diferentes formas de comenzar los datos de auditoría con el fin de monitorear los cambios futuros, pero si originalmente no tenían ningún sistema de auditoría en su lugar, entonces es muy difícil averiguar quién hizo qué y cuándo históricamente.

Sólo opción es tratar de leer la base de datos de registro de transacciones asumiendo está en el modo de recuperación completa. El problema es que esto no es apoyada por defecto. Las opciones son:

Consulte estos temas para más detalles:

Cómo ver registro de transacciones en SQL Server 2008

transacciones de SQL Server Log Explorer / Analizador

Cómo ver el historial de consultas en SQL Server Management estudio

Estoy de acuerdo. Puede ser el generador de perfiles de SQL Server con filtros. El desencadenadores DDL existía en SQL Server. Se puede crear algo como esto:

 CREATE TRIGGER ddl_drop_procedure 
    ON DATABASE 
    FOR DROP_PROCEDURE
   AS 
     RAISERROR ('You deleted a stored procedure',10, 1)

   GO

La otra opción es utilizar herramientas de terceros como Auto Auditoría de CodePlex, o el gatillo ApexSQL.

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