Bonjour,
On m'a demandé de faire des stats sur les utilisateurs d'une base de données.
(récurrences de connexions, date de la dernière connexion,..)
L'objectif est par exemple de voir si certains login ne sont jamais utilisés.
J'ai tenté de répondre au besoin via un trigger logon
!!! Attention , ne pas créer ce trigger sans être sûr, au risque de ne plus pouvoir se logger sur le serveur!!!
Ca a l'air de fonctionner mais :
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
22
23
24 USE maDB GO CREATE TABLE dbo.Login_Info ( database_name VARCHAR(255), login_name VARCHAR(255), login_time DATETIME2(0) ) GO USE master GO CREATE TRIGGER connection_history ON ALL SERVER WITH EXECUTE AS 'admin_login' /*Créer un compte ayant les droits d'insert sur [maDB].[dbo].[Login_Info], je pense que ça suffirait*/ FOR LOGON AS BEGIN INSERT INTO [maDB].[dbo].[Login_Info] SELECT DB_NAME(),ORIGINAL_LOGIN(),GETDATE() END --Tester une connexion SELECT * FROM maDB.dbo.Login_Info ORDER BY Login_Time DESC
-J'ai plusieurs lignes à chaque connexion , à quelques ms près (j'ai l'impression qu'il log une ligne par db présente sur le serveur)
-Des lignes s'ajoutent plus tard, alors que je suis déjà connecté
Comment pourrais-je éviter toutes ces lignes non désirées? Est-ce faisable?
Ou alors avez-vous une autre méthode plus simple?
Mon objectif : stocker dans une table : login_name, logon_datetime
Merci d'avance ,
Vinc
Partager