Comment puis-je obtenir la dernière date de connexion pour certains utilisateurs. J'ai googlé et suis tombé sur cette requête
SELECT name, accdate FROM sys.syslogins
Mais la colonne accdate
semble 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 ne montre les résultats que pour les utilisateurs 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 utilisateurs créés sur mesure dans sys.dm_exec_sessions
, ou quelle est l'alternative à cette solution?
Utilisez sys.dm_exec_sessions vue système
affiche des informations sur toutes les connexions utilisateur actives et les tâches internes. Ces informations incluent la version du client, le nom du programme client, l'heure de connexion du client , l'utilisateur de connexion, le paramètre de session en cours, etc.
Voici un petit script qui espère vous aider!
SELECT login_name [Login] , MAX(login_time) AS [Last Login Time]
FROM sys.dm_exec_sessions
GROUP BY login_name;
[~ # ~] mise à jour [~ # ~]
Et à propos des nouvelles connexions, vous devez d'abord vous connecter avec elles pour obtenir un enregistrement dans sys.dm_exec_sessions
utilisez donc le code suivant pour créer une connexion: -
CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCDa@12'
GO
CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]
EXEC sp_addrolemember N'db_owner', N'NewAdminName'
Connectez-vous maintenant par: -
User Name = NewAdminName
Password: ABCDa@12
Une fois la connexion réussie, les informations de cette connexion sont stockées dans sys.dm_exec_sessions