Wie finde ich das Datum, an dem ein Anmeldekennwort zuletzt in SQL Server 2008 geändert wurde?


7

Ich portiere gespeicherte Prozeduren von Sybase 15 nach SQL Server 2008.

In Sybase berechnet diese Anweisung ein Ablaufdatum durch Hinzufügen einer Anzahl von Tagen zu syslogins.pwdate (Datum, an dem das Kennwort zuletzt geändert wurde) und funktioniert einwandfrei:

SELECT @l_pwd_date = dateadd( day, @l_pwd_max_expire, pwdate)
FROM master.dbo.syslogins
WHERE name = @v_user

... aber löst diesen Fehler aus, wenn versucht wird, ihn in SQL Server 2008 zu kompilieren:

Meldung 207, Ebene 16, Status 1, Zeile 21 Ungültiger Spaltenname 'pwdate'.

syslogins In SQL Server 2008 ist diese Spalte pwdate nicht mehr enthalten.

Weiß jemand, wo ich in SQL Server 2008 eine entsprechende Spalte oder eine Problemumgehung finden kann, um das Datum zu ermitteln, an dem ein Anmeldekennwort zuletzt geändert wurde?


1
Zu Ihrer Information, syslogins ist veraltet für sys.server_principals, die es noch nicht haben. Noch sys.sql_logins
gbn

Antworten:


20

Verwenden Sie die Option PasswordLastSetTime der LOGINPROPERTY .

SELECT LOGINPROPERTY('YourLoginName', 'PasswordLastSetTime');

1
Schätzen Sie die Zeit, Joe, danke; es hat gut funktioniert. Wenn Sie die integrierte Windows-Authentifizierung verwenden, wird NULL zurückgegeben, da Anmeldename der Name einer SQL Server-Anmeldung sein muss.
Nur Sie

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.