Domyślnie komunikat o błędzie logowania nie powiódł się, ale serwer odmówił połączenia użytkownika klienta z powodu niezgodności poświadczeń logowania. Pierwszym zadaniem, które możesz sprawdzić, jest sprawdzenie, czy ten użytkownik ma odpowiednie uprawnienia do tej instancji SQL Server i odpowiedniej bazy danych, to dobrze. Oczywiście, jeśli niezbędne uprawnienia nie zostały ustawione, musisz naprawić ten problem, nadając odpowiednie uprawnienia dla tego logowania użytkownika.
Chociaż jeśli ten użytkownik ma odpowiednie uprawnienia do bazy danych i serwera, jeśli serwer napotka jakiekolwiek problemy z poświadczeniami dla tego logowania, uniemożliwi to przyznanie uwierzytelnienia z powrotem do SQL Server, klient otrzyma następujący komunikat o błędzie:
Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'
Ok, co teraz, patrząc na komunikat o błędzie, wydaje się, że nie jest on opisowy, aby zrozumieć poziom i stan. Domyślnie błąd systemu operacyjnego pokazuje „Stan” jako 1, niezależnie od natury problemów z uwierzytelnianiem logowania. W celu dokładniejszego zbadania należy również przejrzeć odpowiedni dziennik błędów wystąpienia programu SQL Server, aby uzyskać więcej informacji na temat wagi i stanu tego błędu. Możesz zajrzeć do odpowiedniego wpisu w dzienniku jako:
2007-05-17 00:12:00.34 Logon Error: 18456, Severity: 14, State: 8.
or
2007-05-17 00:12:00.34 Logon Login failed for user '<user name>'.
Jak zdefiniowano powyżej, kolumny Severity & State dotyczące błędu są kluczem do znalezienia dokładnego odzwierciedlenia źródła problemu. Na powyższym błędzie numer 8 dla stanu wskazuje na błąd uwierzytelniania z powodu niezgodności hasła. Dotyczy książek online: Domyślnie wiadomości zdefiniowane przez użytkownika o wadze mniejszej niż 19 nie są wysyłane do dziennika aplikacji Microsoft Windows, gdy się pojawią. Zdefiniowane przez użytkownika komunikaty o wadze mniejszej niż 19 nie wyzwalają zatem alertów programu SQL Server Agent.
Sung Lee, menedżer programu w protokołach SQL Server (Dev.team) przedstawił dalsze informacje na temat opisu stanu błędu: Typowe stany błędów i ich opisy przedstawiono w poniższej tabeli:
ERROR STATE ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5 Invalid userid
6 Attempt to use a Windows login name with SQL Authentication
7 Login disabled and password mismatch
8 Password mismatch
9 Invalid password
11 and 12 Valid login but server access failure
13 SQL Server service paused
18 Change password required
Well I'm not finished yet, what would you do in case of error:
2007-05-17 00:12:00.34 Logon Login failed for user '<user name>'.
Widać, że w dzienniku błędów tej instancji SQL Server nie zdefiniowano istotności ani poziomu stanu. Więc następną opcją rozwiązywania problemów jest przejrzenie dziennika zabezpieczeń Podglądu zdarzeń [edytuj, ponieważ brakuje zrzutu ekranu, ale otrzymasz plik
pomysł, zajrzyj do dziennika zdarzeń pod kątem interesujących wydarzeń].