SQL Server-2016 - Wie man zuletzt eingeloggt Datum für die Benutzer?
Wie bekomme ich die letzten eingeloggt Datum für bestimmte Benutzer.
Ich gegoogelt und stolperte über diese Abfrage
SELECT name, accdate FROM sys.syslogins
Aber die accdate
Spalte scheint veraltet und nicht aktualisiert.
Habe ich ein weiteres Indiz
SELECT login_name, max(login_time) as last_logged_in
FROM sys.dm_exec_sessions GROUP BY login_name
Aber es zeigt mir nur Ergebnisse für system-Benutzer, nicht diejenigen, denen ich mit dieser Abfrage
CREATE USER test1 FOR LOGIN test1 WITH DEFAULT_SCHEMA = 'test1'
Die Frage ist, wie man benutzerdefinierte erstellte Benutzer werden im sys.dm_exec_sessions
oder was ist die alternative zu dieser Lösung?
- Nicht sicher, warum, aber
accdate
ist eigentlich das gleiche wiecreatedate
. Wenn Sie einen Blick auf die DDL dersys.syslogins
Sie werden sehen, dass Sie werden definiert als " createdate = p.create_date " undaccdate = p.create_date
. Ich bin mir nicht sicher, dass Sie die Login-Daten von SQL Server. Sie werden wahrscheinlich brauchen, um set-up eine Art extended-Ereignis, diese Informationen zu speichern. Ich nehme an, man könnte auch einen Server einrichten-Level-Trigger als auch, sondern nur sicherstellen, dass die Tabelle Ihre Sie zugänglich ist, durch öffentliche und nicht-Nutzer habenDENY
(sonst werden Sie nicht in der Lage sein um sich anzumelden). Ich nicht wirklich empfehlen, einTRIGGER
. - Vielleicht haben Sie mehr Freude mit dieser Frage mehr über Stapel DBA. Wie @Larnu sagte, ich glaube nicht, dass der SQL-Server hat das, out of the box. Forschen, extended events.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden sys.dm_exec_sessions system Ansicht, Dass
Hier ein kleines Skript, Hoffnung kann Ihnen helfen!
UPDATE
Und Über Neue Anmeldungen, Müssen Sie sich mit Ihnen erst einmal für einen Datensatz in
sys.dm_exec_sessions
so verwenden Sie den nächsten code für die Erstellung einer Anmeldung:-
Nun Einloggen:-
Nach der Anmeldung erfolgreich, werden die Informationen aus dieser Anmeldung gespeichert in
sys.dm_exec_sessions
test1
aber es gibt keine Daten, die anzeigen für diese Nutzer. Wäre toll, wenn ich könnte "push", dass user es irgendwie, und schalten Sie die Protokollierung für die Benutzer als auchsys.dm_exec_sessions