SQL Server 2016 – Comment get la dernière date de connection pour l'user?

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