Utworzyłem konto logowania na moim serwerze localhost \ sql2008 (np. User123)
Mapowane do bazy danych (domyślnie)
Tryb uwierzytelniania na serwerze SQL jest ustawiony na oba (Windows i SQL)
Ale logowanie do SQL Server kończy się niepowodzeniem z następującym komunikatem (dla User123)
Uwaga: kilkakrotnie sprawdzałem, czy nazwa użytkownika / hasło są wpisane poprawnie
Szczegóły błędu:
Logowanie nie powiodło się dla użytkownika „User123” (Net.SqlClient Data Provider)
Nazwa serwera: localhost \ sql2008 Numer błędu: 18456 Ważność: 14 Stan: 1 Numer wiersza: 65536
jakakolwiek pomoc w tej sprawie, proszę.
sql-server
sql-server-2008
Sreedhar
źródło
źródło
Odpowiedzi:
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:
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:
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:
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ń].
źródło
Musisz włączyć uwierzytelnianie SQL Server:
źródło
Miałem ten sam problem, jednak mój wynikał z tego, że nie ustawiłem uwierzytelniania serwera na „tryb uwierzytelniania serwera SQL i systemu Windows” (który miałeś). Chciałem o tym tutaj wspomnieć, na wypadek gdyby ktoś przegapił to w Twoim pytaniu.
Możesz uzyskać do tego dostęp przez
źródło
Możesz uzyskać do tego dostęp przez
Tylko dla każdego, kto to czyta: to zadziałało również na SQL Server 2012. Dzięki
źródło
Prawidłowym rozwiązaniem problemu jest upewnienie się, że uwierzytelnianie serwera SQL jest włączone dla serwera SQL.
źródło
Po włączeniu „trybu uwierzytelniania serwera SQL i systemu Windows” przejdź do poniższego.
Na koniec uruchom ponownie SQL Server.
źródło