Eu preciso rastrear no SQL SERVER usuário autenticado sempre que ele estiver logando no sistema, enviar automaticamente um e-mail de alerta como este usuário está logando com este IP e desta vez.
Eu tenho apenas uma solução para esse problema, mas isso não é tão apropriado porque eu tenho que ver isso manualmente.
A solução abaixo não funciona para o email de alerta porque tenho que executar manualmente.
SELECT
DISTINCT
@@SERVERNAME ServerName ,
DB_NAME(database_id) DatabaseName ,
s.login_name ,
s.[host_name] ,
c.client_net_address ,
c.connect_time
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_id
WHERE c.auth_scheme = 'SQL'
AND program_name IN ( 'Microsoft SQL Server Management Studio',
'Microsoft SQL Server Management Studio - Query' )
AND c.connect_time >= DATEADD(DAY, -1, GETDATE())
AND login_name <> 'prcommon';
Obrigado.
Primeiro eu fiz na tabela para armazenar o histórico do SqlServerLoginHistory:
Depois disso, fez um gatilho de logon.
Depois disso feito no gatilho Simples (após inserir) na tabela AuditDetail para enviar email de alerta.