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 wie createdate. Wenn Sie einen Blick auf die DDL der sys.syslogins Sie werden sehen, dass Sie werden definiert als " createdate = p.create_date " und accdate = 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 haben DENY (sonst werden Sie nicht in der Lage sein um sich anzumelden). Ich nicht wirklich empfehlen, ein TRIGGER.
  • 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.
InformationsquelleAutor ixnv | 2017-12-20
Schreibe einen Kommentar