Comment puis-je get la dernière date de connection pour certains users. J'ai googlé et suis tombé sur cette requête
SELECT name, accdate FROM sys.syslogins
Mais la colonne accdate
semble être obsolète et ne se met pas à jour.
J'ai un autre indice
SELECT login_name, max(login_time) as last_logged_in FROM sys.dm_exec_sessions GROUP BY login_name
Mais il me montre les résultats uniquement pour les users du système, pas ceux que j'ai créés avec cette requête
CREATE USER test1 FOR LOGIN test1 WITH DEFAULT_SCHEMA = 'test1'
La question est de savoir comment faire apparaître les users personnalisés dans sys.dm_exec_sessions
, ou quelle est l'alternative à cette solution?
Utiliser la vue système sys.dm_exec_sessions
affiche des informations sur toutes les connections user actives et les tâches internes. Ces informations incluent la version du client, le nom du programme client, l' heure de connection du client , l'user connecté, le paramètre de session en cours, etc.
Voici un petit script espère vous aider!
SELECT login_name [Login] , MAX(login_time) AS [Last Login Time] FROM sys.dm_exec_sessions GROUP BY login_name;
METTRE À JOUR
Et à propos de nouvelles connections, vous devez d'abord vous connecter avec eux pour get un logging dans sys.dm_exec_sessions
alors utilisez le code suivant pour créer un login: –
CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCDa@12' GO CREATE USER [NewAdminName] FOR LOGIN [NewAdminName] EXEC sp_addrolemember N'db_owner', N'NewAdminName'
Maintenant login par: –
User Name = NewAdminName Password: ABCDa@12
Après la journalisation, les informations de ce login sont stockées dans sys.dm_exec_sessions