Wo werden SQL 2008-Anmeldekennwörter gespeichert?

9

Ich muss wissen, in welcher Datei SQL Server 2008 die Kennwörter tatsächlich speichert. Dies ist eine Frage, die von einem Sicherheitsprüfer gestellt wird.

Ich weiß, dass ich Passwort-Hashes erhalten kann LOGINPROPERTY('bbellomo', 'PasswordHash'), aber das hilft mir nicht. Ich muss wissen, wie sie gespeichert sind.

Brad
quelle

Antworten:

6

Die Passwörter werden nicht im Klartext gespeichert. Wenn der Auditor die Datei, in der er gespeichert ist, wirklich benötigt, zeigen Sie auf die Datei master.mdf. Dies gilt natürlich für SQL-Anmeldungen. Bei Windows-Anmeldungen weiß SQL nicht einmal, wie das Kennwort lautet. Active Directory übernimmt die Authentifizierung.

Ben Thul
quelle
5

Versuchen Sie, sys.server_principalsBenutzernamen und Passwörter in der masterDatenbank zu überprüfen. Die Passwörter werden jedoch nicht im Klartext gespeichert.

JonH
quelle
Geben Sie ihm SELECT * FROM SYSLOGINS, wenn er / sie wirklich eine Ausgabe benötigt
jl.
5

Der Ausführungsplan von 'SELECT password FROM syslogins' zeigt, dass die Passwörter sys.sysxlgnsin der Master-Datenbank gespeichert sind.

Schauen Sie sich an: System Base Tables

Hier sind die Passwörter in den beiden einzigen Formaten, die SQL Server uns anzeigt:

SELECT name, password, LOGINPROPERTY(name, 'PasswordHash' ) hash
FROM syslogins
WHERE password IS NOT NULL
ORDER BY name

Sie können wahrscheinlich leicht zwischen den Formaten konvertieren, aber ich weiß nicht, wie aus der Hand.

Brad
quelle
Dies funktioniert nur, wenn Sie über genügend Rechte auf dem Server verfügen. Laut BOL ist eine CONTROL SERVER-Erlaubnis erforderlich. (siehe msdn.microsoft.com/en-us/library/ms345412(v=sql.120).aspx )
Henrik Staun Poulsen