Hoje vamos descobrir quem apagou tabela do SQL Server apenas lendo o arquivo de transaction log.
Já se deparou com uma situação onde alguém chegou até você e disse: Apagaram uma tabela no banco de dados, tem como descobrir?
Você em seguida vai pensar: Se eu não tenho uma trigger para auditar esse tipo de ocorrência, eu estou em apuros.
Recuperar os dados apagados somente via backup, mas o que você acha de encontrar o responsável por ter apagado essa tabela? Basta executar a função (fn_dblog).
Através dessa função você poderá ler os arquivos de log, então para descobrir se algum objeto foi apagado basta executar o seguinte script abaixo:
SELECT
[Transaction Id],
[Begin Time],
SUSER_SNAME ([Transaction SID]) AS [User],
[Transaction Name]
FROM fn_dblog (NULL, NULL)
WHERE [Transaction Name] = 'DROPOBJ'
GO
Bacana certo?
Existem várias outras formas de ler os arquivos de log para demais finalidades. Abaixo vou deixar uma forma interessante que seria, verificar os horários que ocorreram DML’s no banco de dados. Para saber basta executar o comando abaixo:
SELECT [Transaction Id], [Begin Time],
SUSER_SNAME ([Transaction SID]) AS [User],
[Transaction Name]
FROM sys.fn_dblog(NULL,NULL)
WHERE Operation IN
('LOP_INSERT_ROWS','LOP_MODIFY_ROW',
'LOP_DELETE_ROWS','LOP_BEGIN_XACT','LOP_COMMIT_XACT')
Em breve farei novos vídeos com demos com a finalidade de explicar melhor.
Grande abraço!
Saiba como a função UPPER() no SQL Server pode degradar a performance das suas consultas…
Saiba agora mesmo como você pode diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server. Recentemente eu trabalhei em…
Nós DBA' e desenvolvedores quase sempre temos que trabalhar com datas quando se trata de…
Quais são as diferentes maneiras de proteger o login Senha do Administrador (SA)? Todos estão…
Com os direitos que o login sa tem por padrão no SQL Server, é obrigatório…
Como um DBA, você tem a responsabilidade de garantir a segurança do aplicativo e dos…