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
Ce trigger est extrémement pénalisant en terme de ressources. De plus il est dangereux de toucher aux tables système. Mieux vaut utiliser le profiler SQL et suivre les bons évenements avec les filtres qui vont bien. D'autant que fait sous forme de trace par des proc stock, c'est sans danger pour la production et extémement léger !
A +
merci mais ca ne fonctionne pas il me met le message d'erreur suivant :
Serveur : Msg 213, Niveau 16, État 5, Procédure log_user, Ligne 5
Erreur INSERT : le nom ou le numéro de colonne des valeurs fournies ne correspondent pas à la définition de la table.
ok j'opte pour le profiler !
peut on m'expliquer la marche a suivre ou me donner un lien ou je peux aller pour trouver un tutoriel ?
Merci
ps : j'utilise Sql Server 8.00.194
Bonjour,
Dans mon article sur le tuning, tu as une intro au profiler :
http://rudi.developpez.com/sqlserver.../optimisation/
j'ai vu des choses sur le profiler ! c pas mal mais est-ce vraiment dangereux et gourmand d'utiliser la base master pour recuperer le login et la requete via un trigger ?
Pour le profiler c'est bien aussi mais si j'ai bien compris on est obliger de laisser tourner la trace pour savoir ce qu'il se passe. Or moi j'aimerai savoir tout ce qu'il se passe des qu'il y a une activité sur la base enfin j'aimerai plus a certains endroits et surtout lorsque qu'un delete est effectué
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager