Recentemente eu passei por um episódio onde eu precisava encontrar objetos alterados em um schema do banco de dados.
O que aconteceu basicamente foi um usuário alterou uma procedure no ambiente de produção do SQL Server. Minha missão era encontrar qual era esse usuário e revogar as permissões de alteração de objetos no SQL Server.
Vou mostrar a vocês como se resolve isso de duas formas bem simples.
A primeira é, você pode acessar o Management Studio, clicar com o botão direito na base de dados onde foi alterado o objeto e no menu escolher a opção Reports -> Standard Reports -> Schema Changes History.
Aparecerá algo parecido com isso, como eu já sei qual foi o objeto que eu alterei para mostrar como exemplo vocês poderão ver na imagem abaixo mostrando o horário, o tipo de comando, login, e usuário.
Além dessa forma tem como você também saber via script:
USE SEUBANCO SELECT StartTime ,LoginName ,g.ObjectName --,g.* FROM sys.traces t CROSS APPLY fn_trace_gettable(REVERSE(SUBSTRING(REVERSE(t.path), CHARINDEX('\', REVERSE(t.path)), 260) ) + N'log.trc', DEFAULT) g WHERE t.is_default = 1 AND ObjectName LIKE '%NOMEDOSEUOBJETO%' AND EventClass IN (46, /*Objeto Criado*/ 47, /*Objeto Apagado*/ 164 /*Objeto Alterado*/ )