Gdzie są przechowywane hasła logowania do SQL 2008?

9

Muszę wiedzieć, w którym pliku SQL Server 2008 faktycznie przechowuje hasła. To pytanie zadaje audytor bezpieczeństwa.

Wiem, że mogę uzyskać skróty haseł LOGINPROPERTY('bbellomo', 'PasswordHash'), ale to mi nie pomaga; Muszę wiedzieć, jak są przechowywane.

Ćwiek
źródło

Odpowiedzi:

6

Hasła nie są przechowywane w postaci zwykłego tekstu. Jeśli audytor naprawdę potrzebuje pliku, w którym są przechowywane, skieruj je na plik master.mdf. Dotyczy to oczywiście loginów SQL. W przypadku logowania do systemu Windows SQL nie wie nawet, jakie jest hasło; Usługa Active Directory obsługuje uwierzytelnianie.

Ben Thul
źródło
5

Spróbuj wyszukać sys.server_principalsnazwy użytkowników i hasła w masterbazie danych. Ale hasła nie są przechowywane w postaci zwykłego tekstu.

JonH
źródło
Daj mu WYBIERZ * Z SYSLOGINÓW, jeśli naprawdę potrzebuje danych wyjściowych
jl.
5

Plan wykonania z „WYBIERZ hasło Z syslogins” pokazuje, że hasła są przechowywane w sys.sysxlgnsgłównej bazie danych.

Spójrz na: Tabele podstawowe systemu

Oto hasła, w tylko 2 formatach, które SQL Server pokaże nam:

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

Prawdopodobnie możesz łatwo konwertować między formatami, ale nie wiem, jak pod ręką.

Ćwiek
źródło
działa to tylko wtedy, gdy masz wystarczającą liczbę uprawnień na serwerze. Według BOL wymaga zgody SERWERA KONTROLI. (patrz msdn.microsoft.com/en-us/library/ms345412(v=sql.120).aspx )
Henrik Staun Poulsen