Bonjour,
J'aimerai savoir si c'est possible de savoir qui s'est connecté a la base de données entre deux dates données ?
Et si possible de savoir quelles requetes ils ont effectué
Merci
Bonjour,
J'aimerai savoir si c'est possible de savoir qui s'est connecté a la base de données entre deux dates données ?
Et si possible de savoir quelles requetes ils ont effectué
Merci
il te suffit d'ajouter un trigger sur la table sysprocesses en jointant avec syslogins
serge
Merci bcp pour ta reponse seulement je suis nul en trigger ;-)
J'aimerai savoir comment y arriver...
Peut-tu me fournir le code a utiliser ?
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 CREATE TRIGGER log_user ON master.dbo.sysprocesses FOR insert AS begin insert into table_log select spid, ecid, status, loginame=rtrim(loginame), hostname, blk=convert(char(5),blocked), dbname = case when dbid = 0 then null when dbid <> 0 then db_name(dbid) end ,cmd,nt_username,hostname,login_time from inserted where isnull(nt_username,'')<>'' end![]()
jsute une question avant d'executer ton code
Il n'y a aucune incidence a effectuer ce code dans la base de données ?
je dis ca comme je vois un insert into
devrais-je effacer des traces ?
et table_log c quoi ?
il te faut créer la table table_log dans ta base avant
en fait, le trigger insèrera les infos au fur et a mesure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 create table table_log (spid int, ecid int, STATUS varbinary, loginame varchar(50), hostname varchar(50), blk cahar(5), dbname varchar(50), cmd varchar(50), nt_username varchar(50), hostname varchar(50), login_time datetime )
si tu as peur de faire des conneries, créés toi une base de test a part.
tu seras maitre de ta table de log que tu pourras purger quand tu voudras.
A+
serge
Partager