Saltar al contenido

Cómo saber quién eliminó algunos datos SQL Server

Necesitamos tu ayuda para difundir nuestras crónicas con relación a las ciencias de la computación.

Solución:

No probé fn_dblog en Express, pero si está disponible, lo siguiente le dará operaciones de eliminación:

SELECT 
    * 
FROM 
    fn_dblog(NULL, NULL) 
WHERE 
    Operation = 'LOP_DELETE_ROWS'

Tome el ID de transacción para las transacciones que le interesan e identifique el SID que inició la transacción con:

SELECT
    [Transaction SID]
FROM
    fn_dblog(NULL, NULL)
WHERE
    [Transaction ID] = @TranID
AND
    [Operation] = 'LOP_BEGIN_XACT'

Luego identifique al usuario desde el SID:

SELECT
    *
FROM 
    sysusers
WHERE
    [sid] = @SID

Editar: reunir todo eso para encontrar eliminaciones en una tabla específica:

DECLARE @TableName sysname
SET @TableName = 'dbo.Table_1'

SELECT
    u.[name] AS UserName
    , l.[Begin Time] AS TransactionStartTime
FROM
    fn_dblog(NULL, NULL) l
INNER JOIN
    (
    SELECT
        [Transaction ID]
    FROM 
        fn_dblog(NULL, NULL) 
    WHERE
        AllocUnitName LIKE @TableName + '%'
    AND
        Operation = 'LOP_DELETE_ROWS'
    ) deletes
ON  deletes.[Transaction ID] = l.[Transaction ID]
INNER JOIN
    sysusers u
ON  u.[sid] = l.[Transaction SID]

Si la base de datos está en modo de recuperación completa o si tiene copias de seguridad del registro de transacciones, puede intentar leerlas con lectores de registro de terceros.

Puede probar ApexSQL Log (premium pero tiene una versión de prueba gratuita) o SQL Log Rescue (gratis pero solo sql 2000).

cómo podrían averiguar quién eliminó algunos datos en su base de datos de SQL Server

Aunque esto está respondido, quería agregar que SQL Server tiene un seguimiento predeterminado habilitado y se puede usar para averiguar quién eliminó/alteró los objetos.

Eventos de objeto

Los eventos de objeto incluyen: Objeto alterado, Objeto creado y Objeto eliminado

Nota: SQL Server tiene de forma predeterminada 5 archivos de seguimiento, de 20 MB cada uno, y no existe ningún método compatible conocido para cambiar esto. Si tiene un sistema ocupado, los archivos de seguimiento pueden pasar demasiado rápido (incluso en cuestión de horas) y es posible que no pueda detectar algunos de los cambios.

Se puede encontrar un excelente ejemplo: El seguimiento predeterminado en SQL Server: el poder de la auditoría de rendimiento y seguridad

Comentarios y valoraciones

Al final de todo puedes encontrar los comentarios de otros usuarios, tú todavía tienes la libertad de insertar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *