Błąd logowania do Microsoft SQL Server: 18456


295

Otrzymuję ten błąd podczas próby połączenia z programem SQL Server.

Błąd Microsoft SQL Server: 18456

Czy ktoś może mi powiedzieć, co oznacza kod błędu?


6
Pobieżne wyszukiwanie wydaje się wskazywać, że kod błędu jest błędem logowania i zazwyczaj towarzyszą mu bardziej szczegółowe informacje.
David

I te bardziej szczegółowe informacje powinny znajdować się w dzienniku błędów serwera SQL. Sama liczba celowo nie mówi zbyt wiele, więc crackerzy nie mogą jej użyć do uzyskania wskazówek co do tego, gdzie ich próby się nie udają.
Tony Hopkinson

przydatne informacje tutaj
sairfan

1
Musiałem tylkorun as administrator
Jacksonkr

wystarczy sprawdzić to rozwiązanie: stackoverflow.com/questions/41386538/…
Akash Singh Sengar

Odpowiedzi:


706

Jeśli próbujesz połączyć się przy użyciu „SQL Server Authentication”, możesz zmodyfikować swoje uwierzytelnianie serwera:

W Microsoft SQL Server Management Studio w eksploratorze obiektów:

  1. Kliknij serwer prawym przyciskiem myszy i kliknij Properties

  2. Idź do Securitystrony

  3. Poniżej Server authenticationwybierz SQL Server and Windows Authentication modeprzycisk opcji

  4. Kliknij OK

  5. Uruchom ponownie usługi SQL


32
Dzięki. Szkoda, że ​​nie ma komunikatu ostrzegawczego przy próbie dodania użytkowników.
JohnnyBizzle

12
Co dokładnie masz na myśli „Właściwości serwera i kliknięcia prawym przyciskiem myszy”, gdzie to jest?
emcor

9
Ma na
myśli

21
Jest to bardzo częsty problem, na który napotykają ludzie. Fakt, że możesz tworzyć loginy SQL Server do treści twojego serca, nie zdając sobie sprawy, że to proste ustawienie jest wyłączone, jest raczej mylące dla IMO. Poleciłbym to jako prawidłową odpowiedź.

7
@JGilmartin, Jak dokładnie będziesz w stanie połączyć się z serwerem w Eksploratorze obiektów, gdy pojawi się błąd 18456, co oznacza, że nie możesz się połączyć ?
Shai Alon,

69

Sprawdź ten artykuł na blogu od zespołu platformy danych.

http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

Naprawdę musisz spojrzeć na część stanu komunikatu o błędzie, aby znaleźć podstawową przyczynę problemu.

2, 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, 12 = Valid login but server access failure
13 = SQL Server service paused
18 = Change password required

Następnie Google, jak rozwiązać problem.


42
Nie trącić własnym rogiem, ale zebrałem tutaj o wiele więcej informacji: sqlblog.com/blogs/aaron_bertrand/archive/2011/01/14/…
Aaron Bertrand

Zawsze trąbiesz klaksonem ... Dzięki za głosowanie? Ale twoja lista wydaje się być bardziej kompletna! Myślę, że większość ludzi nie wie, jak korzystać z Google.
CRAFTY DBA

1
Skłoniło mnie do wznowienia głosowania, ale jestem rozdarty, ponieważ odpowiadanie na pytania, na które Google mógłby odpowiedzieć, po prostu zachęca ludzi do zadawania pytań zamiast szukania ...
Aaron Bertrand

13
Google może odpowiedzieć na 99% pytań tutaj, jednak proste pytanie i odpowiedź pozwala zaoszczędzić znaczną ilość czasu na wyszukiwanie i oblewanie często zbędnymi artykułami / blogami, a więc o jeden głos ode mnie!
Chris Nevill,

12
TUTAJ znajduję odpowiedzi, kiedy używam google (wyszukiwarka google tak dobrze niż SO wyszukiwarka SO ...)
Cos Callis

27

Przed otwarciem kliknij prawym przyciskiem myszy i wybierz polecenie „Uruchom jako administrator”. To rozwiązało problem dla mnie.


to była dla mnie poprawka. Miałem State: 1w komunikacie o błędzie.
GraehamF,

@Gsic Jesteś prawdziwym wybawcą. Walczę od ponad dnia, a twoje rozwiązanie to rozwiązało. Dzięki
Karthik,

Przed otwarciem co?
Mike

11

najpierw zobacz szczegóły błędu, jeśli „stan” to „1” Upewnij się, że baza danych jest skonfigurowana zarówno do uwierzytelniania SQL, jak i Windows w obszarze SQL server / Properties / Security.

dla innych stanów patrz powyższe odpowiedzi ....


1
OMG dziękuję! Żadne z moich loginów nie działało, potem natknąłem się na tę odpowiedź i stwierdziłem, że moja instancja SQL Express zmieniła się z „Uwierzytelniania SQL i Windows” na „Uwierzytelnianie Windows”. Zmieniłem to z powrotem i wszystko działa.
Ian Kemp

1
Ponadto zamknięcie SSMS w niewystarczającym stopniu, wymaga ponownego uruchomienia usługi SqlServer, aby zmiana mogła zostać zastosowana.
Ravid Goldenberg,

10

Napotkałem ten problem.

Proszę spojrzeć na załączony obraz,

Krok 1: Przejdź do właściwości serwera

Krok 2: Przejdź do Bezpieczeństwo

Krok 3: Zmień uwierzytelnianie serwera jako serwer SQL i tryb WindowsAuthenication

i zrestartuj serwer Sql.

wprowadź opis zdjęcia tutaj


9
  1. Sprawdź, czy uwierzytelnianie w trybie mieszanym jest włączone w twoim serwerze-> właściwości
  2. Następnie utwórz login w serwerze-> bezpieczeństwo
  3. utwórz użytkownika dla tego loginu w swojej bazie danych
  4. Następnie uruchom ponownie serwer, klikając instancję prawym przyciskiem myszy i wybierz opcję Uruchom ponownie

5

Właśnie mi się przydarzyło i okazało się, że jest inny niż wszystkie inne wymienione tutaj przypadki.

Zdarza mi się mieć dwa serwery wirtualne hostowane w tym samym klastrze, każdy z własnym adresem IP. Host skonfigurował jeden z serwerów jako SQL Server, a drugi jako serwer WWW. Jednak SQL Server jest zainstalowany i działa na obu. Host zapomniał wspomnieć, który z serwerów jest SQL, a który WWW, więc po prostu założyłem, że pierwszy to Web, drugi to SQL.

Kiedy podłączyłem się do (jak myślałem) SQL Server i próbowałem połączyć się przez SSMS, wybierając uwierzytelnianie systemu Windows, dostałem błąd wymieniony w tym pytaniu. Po pociągnięciu za dużo włosów przeszedłem przez wszystkie ustawienia, w tym SQL Server Network Configuration, Protocols for MSSQLSERVER:

zrzut ekranu konfiguracji TCP / IP

Podwójne kliknięcie TCP / IP dało mi to:

Właściwości TCP / IP, pokazujące zły adres IP

Adres IP był z drugiego serwera wirtualnego! W końcu uświadomiłem sobie, że po prostu pomyliłem serwery i wszystkie działały dobrze na drugim serwerze.


4

Jeśli zmienisz dane logowania użytkownika lub dodasz nowego użytkownika, po zalogowaniu się będziesz musiał ponownie uruchomić SQL Server Service. za to

PRZEJDŹ do -> Usługi rząd w kolorze szarym

Następnie przejdź do SQL Server (MSSQLSERVER) i zatrzymaj się i zacznij od nowa

Teraz spróbuj się zalogować, mam nadzieję, że możesz.

Dzięki


3

18456 Lista stanów błędów

STAN BŁĘDU OPIS BŁĘDU

  • Stan 2 i stan 5 Niepoprawny identyfikator użytkownika
  • Stan 6 Próba użycia nazwy logowania systemu Windows z uwierzytelnianiem SQL
  • Stan 7 Logowanie wyłączone i niedopasowanie hasła
  • Niezgodność hasła stanu 8
  • Stan 9 Nieprawidłowe hasło
  • Stan 11 i Stan 12 Prawidłowy login, ale błąd dostępu do serwera
  • Stan 13 SQL Server usługa wstrzymana
  • Stan 18 Wymagana zmiana hasła

Potencjalne przyczyny Poniżej znajduje się lista powodów i krótkie wyjaśnienie, co należy zrobić:

Uwierzytelnianie SQL nie jest włączone : jeśli używasz SQL Login po raz pierwszy w wystąpieniu SQL Server, bardzo często pojawia się błąd 18456, ponieważ serwer może być ustawiony w trybie uwierzytelniania Windows (tylko).

Jak to naprawić ? Sprawdź tę stronę SQL Server i tryb uwierzytelniania systemu Windows.

Nieprawidłowy identyfikator użytkownika: SQL Server nie może znaleźć określonego identyfikatora użytkownika na serwerze, który próbujesz uzyskać. Najczęstszą przyczyną jest to, że ten identyfikator użytkownika nie uzyskał dostępu do serwera, ale może to być również zwykła literówka lub przypadkowo próbujesz połączyć się z innym serwerem (typowy, jeśli używasz więcej niż jednego serwera)

Nieprawidłowe hasło: nieprawidłowe hasło lub tylko literówka. Pamiętaj, że ta nazwa użytkownika może mieć różne hasła na różnych serwerach.

rzadziej występujące błędy: identyfikator użytkownika może być wyłączony na serwerze. Podano logowanie do systemu Windows dla uwierzytelnienia SQL (zmiana na uwierzytelnianie systemu Windows. Jeśli używasz SSMS, być może będziesz musiał uruchomić się jako inny użytkownik, aby skorzystać z tej opcji). Hasło mogło wygasnąć i prawdopodobnie z kilku innych powodów… Jeśli znasz jakieś inne, daj mi znać.

Wyjaśnienia dotyczące stanu 18456 1: Zazwyczaj program Microsoft SQL Server podaje stan błędu 1, co tak naprawdę nie znaczy nic poza tym, że występuje błąd 18456. Stan 1 służy do ukrywania stanu faktycznego w celu ochrony systemu, co według mnie ma sens. Poniżej znajduje się lista ze wszystkimi różnymi stanami. Aby uzyskać więcej informacji na temat pobierania dokładnych stanów, zobacz Opis komunikatów o błędach „Logowanie nie powiodło się” (Błąd 18456) w programie SQL Server 2005

Mam nadzieję, że to pomaga


2

Kliknij prawym przyciskiem myszy użytkownika, przejdź do właściwości, zmień domyślną bazę danych na master To jest zrzut ekranu obrazu, który pokazuje, co musisz sprawdzić, jeśli masz błąd 19456. Czasami domyślna jest baza danych, której użytkownik nie ma pozwolenie


2

Najpierw przejdź do paska startowego, a następnie wyszukaj usługi lokalne, a następnie kliknij „zobacz usługi lokalne”. Następnie otworzy się okno usługi, a następnie przejdziesz do SQL Server (MSSQLSERVER), kliknij prawym przyciskiem myszy i kliknij przycisk Stop, a następnie ponownie kliknij prawym przyciskiem myszy i kliknij przycisk Start. Teraz możesz zalogować się i podać swoją nazwę użytkownika jako „sa”, a hasło to Twoje wygrane hasło.



1

Sprawdź, czy masz połączenie z siecią, jeśli jest to komputer należący do domeny. Upewnij się także, że nie korzystasz z komputera z dwoma komputerami domowymi, ponieważ trasy mogą być nieprawidłowe ze względu na parametry sieci. Miałem ten problem, gdy nie mogłem połączyć się z domeną, uwierzytelnianie systemu Windows SQL przełączyło się na lokalne konto PC, ale zarejestrowałem je jako uwierzytelnienie SQL. Po wyłączeniu adaptera bezprzewodowego i ponownym uruchomieniu, integracja systemu Windows wróciła do konta domeny i została poprawnie uwierzytelniona. Ustawiłem już tryb mieszany, tak jak już to zrobiłeś, więc poprzednie posty nie mają zastosowania.



0

Wydaje mi się, że może się tak zdarzyć, jeśli próbujesz zalogować się przy użyciu użytkownika zdefiniowanego w usłudze Active Directory, ale spróbujesz użyć „uwierzytelniania programu SQL Server” na ekranie logowania. Nie wiem, jak określić innego użytkownika za pomocą uwierzytelniania NTLM / Windows: Po kliknięciu menu rozwijanego Uwierzytelnianie systemu Windows nazwa użytkownika i hasło są puste i mogę zalogować się tylko jako ja.


0

W moim przypadku wiele błędnych prób zablokowało konto. Aby to zrobić, próbowałem uruchomić poniższe zapytanie i zadziałało: ALTER LOGIN WITH PASSWORD = UNLOCK I upewnij się, że ustawiłeś opcję „Enforce Password Security” dla konkretnego użytkownika, który ma być odznaczony przez kliknij prawym przyciskiem myszy na Sql Server -> Właściwości.


0

Rozwiązywanie problemów z połączeniem z SQL Server

Jeśli nie możesz połączyć się z uwierzytelnianiem SQL i wypróbowałeś inne rozwiązania.

Możesz spróbować:

Sprawdź łączność

  • Wyłącz zaporę.
  • Uruchom PortQry na 1434 i sprawdź odpowiedź.

Sprawdź stan

  • Spróbuj połączyć się za pomocą SSMS lub sqlcmd i sprawdź komunikat.
  • Stan 1 jest rzadko udokumentowany, ale oznacza to po prostu, że nie masz prawa znać prawdziwego stanu.
  • Spójrz na plik dziennika w katalogu serwera SQL, aby dowiedzieć się, jaki jest stan.

Państwo 5

Co ? mój login nie istnieje? jest tam, widzę to w SSMS. Jak to możliwe ?

Najbardziej prawdopodobne wytłumaczenie jest najbardziej prawdopodobne.

Stan logowania

  • Zniszcz, utwórz go ponownie, włącz.
  • zresetować hasło.

Lub...

„Nie patrzysz we właściwe miejsce” lub „to, co widzisz, nie jest tym, co myślisz”.

Konflikt lokalnej bazy danych i SQLEXPRESS

Jeśli łączysz się z SSMS z uwierzytelnianiem Windows, a twoje wystąpienie nosi nazwę SQLEXPRESS, prawdopodobnie patrzysz na LocalDb, a nie na właściwy serwer . Właśnie utworzyłeś swój login na LocalDb.

Gdy łączysz się za pomocą uwierzytelniania SQL Server za pomocą SSMS, spróbuje połączyć się z prawdziwym serwerem SQLEXPRESS, na którym twój ukochany login jeszcze nie istnieje.

Dodatkowa uwaga: Sprawdź na karcie parametrów połączenia, czy nie zapomniałeś tam jakiegoś dziwnego ciągu połączenia.



0

Kolejne sprawdzone rozwiązanie dla mnie. serever->security->logins->new logins->General->stwórz swoją nazwę użytkownika jako nazwę logowania, kliknij uwierzytelnianie serwera sql dodaj hasła

usuń zaznaczenie trzech pól wyboru weryfikacji hasła. To zadziała.

Pamiętaj, aby zmienić właściwości serwera -> Bezpieczeństwo od Server authenticationdoSQL Server and Windows Authentication mode


0

możesz zrobić w systemie Linux dla mssql zmienić hasło do konta sa

konfiguracja sudo / opt / mssql / bin / mssql-conf

The license terms for this product can be downloaded from
 http://go.microsoft.com/fwlink/?LinkId=746388 Jump Jump
and found in /usr/share/doc/mssql-server/LICENSE.TXT.
Do you accept the license terms? [Yes/No]:yes
  Setting up Microsoft SQL Server
Enter the new SQL Server system administrator password:  --Enter strong password
Confirm the new SQL Server system administrator password: --Enter strong password
 starting Microsoft SQL Server...
 Enabling Microsoft SQL Server to run at boot...
Setup completed successfully.

0

Ten błąd wystąpił po utworzeniu nowego użytkownika sysadmin w mojej instancji SQL. Mój administrator został utworzony w ramach określonej domeny MyOrganization / useradmin

Korzystanie z useradmin w rozłączonym środowisku pozwala tworzyć innych użytkowników przy użyciu uwierzytelniania SQL Server, ale gdy tylko spróbujesz się zalogować, otrzymasz

Błąd Microsoft SQL Server: 18456

Aby rozwiązać problem, spróbuj ponownie połączyć się z siecią organizacji i utworzyć użytkownika, gdy jesteś połączony, a następnie możesz się rozłączyć i będzie działać.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.