Problema

Rastreamento de dados apagados é um pouco complicado em SQL. Neste artigo vou explicar como rastrear os usuários que realizaram operação de exclusão. Vamos examinar isso usando Log de Transações.

Solução

Encontrar um usuário que executou o comando DELETE

Passo 1

Para saber quem apagou as linhas que você precisa para consultar o log de transações. A consulta abaixo mencionada vai buscar todos os registros de log de transações.

SELECT
   
    [Transaction ID],Operation, Context, AllocUnitName
   
FROM
   
    fn_dblog(NULL, NULL)
   
WHERE
   
    Operation = 'LOP_DELETE_ROWS'
 

Você pode ver todas as transações devolvidas na imagem acima. Como estamos em busca de dados apagados na tabela Localização, podemos ver isso na última linha. Podemos encontrar o nome da tabela na coluna "AllocUnitName". Agora capturar o ID da transação que irá usar para rastrear.


Passo 2

Nós encontramos o ID da transação no comando acima, que será utilizado no comando abaixo para obter no SID da transação do usuário que tenha excluído os dados.


SELECT
 
    Operation,
 
    [Transaction ID],[Begin Time], [Transaction Name],[Transaction SID]
 
FROM
 
    fn_dblog(NULL, NULL)
 
WHERE
 
    [Transaction ID] = '0000:000e29bc'
 
AND
 
    [Operation] = 'LOP_BEGIN_XACT'

Aqui podemos encontrar informação muito útil, por exemplo, quando começou a transação o que pode nos ajudar quando os dados são apagados. A declaração acima mostra uma instrução de exclusão executada em 2013/11/11 13:19:48:187 por SID do usuário (0x010500000000000515000000FCE3153143170A32A837D665FFC90000)

Agora, nosso próximo passo é converter a transação SID que está em hexadecimal para texto para encontrar o nome real do usuário.

Podemos converter esta SID na informação exata que irá nos mostrar o usuário que realizou a operação de exclusão.

Passo 3

Copie o valor hexadecimal da coluna SID no resultado anterior e passar isso para a função SUSER_SNAME() .

USE MASTER
GO 
   
SELECT SUSER_SNAME(0x010500000000000515000000FCE3153143170A32A837D665FFC90000)

 

E aqui está o usuário que realizou a operação de exclusão. 


Veja Também



Outros Idiomas