Je suggérerais également ce que Julien a suggéré, mais je suppose que la planification de la requête via SQL Server Agent serait une meilleure idée, puis chaque fois qu'il s'exécute, vous videz les informations dans une table physique. Deux DMV sont joints sys.dm_exec_connections
etsys.dm_exec_sessions
Comme d'abord créer une table physique
create table Session_Information
( session_id int,
net_transport nvarchar(40),
host_name nvarchar(128),
program_name nvarchar(128),
nt_user_name nvarchar(128),
connect_time datetime,
client_interface_name nvarchar(128),
client_net_address varchar(48),
local_net_address varchar(48),
login_name nvarchar(128),
nt_domain nvarchar(128),
login_time datetime
);
Insérez ensuite des enregistrements dans ce tableau:
Insert into Session_Information
SELECT
c.session_id,
c.net_transport,
s.host_name,
s.program_name,
s.nt_user_name,
c.connect_time,
s.client_interface_name,
c.client_net_address,
c.local_net_address,
s.login_name,
s.nt_domain,
s.login_time
FROM sys.dm_exec_connections AS c
JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id;
Planifiez cela pour qu'il s'exécute via l'Agent SQL Server toutes les 15 minutes environ et à la fin de la journée, vous pouvez voir tout ce que vous aimez dans le tableau session_information
.