Не вдається увійти до SQL Server + Автентифікація SQL Server + Помилка: 18456


121

Я створив обліковий запис для входу на локальному сервері \ sql2008 (наприклад, користувач123)

Зображено в базі даних (за замовчуванням)

Режим автентифікації на SQL Server встановлено як (Windows, так і SQL)

Але вхід у SQL Server не вдається з наступним повідомленням (для User123)

Примітка. Перевіряли кілька разів, чи правильно введено ім’я користувача / пароль

Деталі помилки:

Помилка входу для користувача "User123" (Net.SqlClient Data Provider)

Ім'я сервера: localhost \ sql2008 Номер помилки: 18456 Серйозність: 14 Стан: 1 Номер рядка: 65536

будь-яка допомога з цього приводу.


1
Перевірте доступ до автентифікації sql та Windows через консоль управління SqlServer для користувача та перевірте, чи можете ви мати доступ до вищевказаного облікового запису. Якого постачальника даних та рядка з'єднання ви використовуєте?
Джо Пітз

1
Я намагаюся увійти в SSMS, і це підкидає вище помилку.
Sreedhar

1
Ви можете увійти як обліковий запис адміністратора?
Джо Пітз

Увійдіть як адміністратор і перевірте свій журнал подій. Причину помилки слід вказати там. Подивіться в папку управління
Джо Пітз

Замість мене працював stackoverflow.com/questions/28090747/…
Mark Schultheiss

Відповіді:


49

За замовчуванням не вдалося ввести повідомлення про помилку, але сервер відмовився у підключенні користувача клієнта через невідповідність облікових даних входу. Перше завдання, яке ви можете перевірити, - це перевірити, чи є у цього користувача відповідні привілеї для цього екземпляра SQL Server і відповідної бази даних, це добре. Очевидно, якщо необхідні першіелементи не встановлені, вам потрібно виправити цю проблему, надавши відповідні привілеї для входу цього користувача.

Якщо ж у цього користувача є відповідні дотації на базу даних та сервер, якщо Сервер зіткнеться з будь-якими обліковими записами для цього входу, це запобіжить поверненню автентифікації на SQL Server, клієнт отримає таке повідомлення про помилку:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

Добре, що зараз, дивлячись на повідомлення про помилку, ви відчуваєте, що це не описово для розуміння рівня та стану. За замовчуванням помилка Операційної системи покаже "Стан" як 1, незалежно від характеру проблем при автентифікації входу. Тож для подальшого дослідження вам також потрібно переглянути відповідний журнал помилок екземплярів SQL Server, щоб отримати докладнішу інформацію про ступінь серйозності та стан цієї помилки. Ви можете переглянути відповідний запис у журналі як:

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>'.

Як визначено вище, стовпці "Важкість і стан" про помилку є ключовими, щоб знайти точне відображення для джерела проблеми. На наведеній вище помилці номер 8 для стану вказується збій автентифікації через невідповідність пароля. Книги в Інтернеті посилаються: За замовчуванням визначені користувачем повідомлення суворістю нижче 19 не надсилаються до журналу програм Microsoft Windows, коли вони виникають. Повідомлення, визначені користувачем, суворістю нижче 19, тому не викликають сповіщення агента SQL Server.

Сунг Лі, менеджер програм у протоколах SQL Server (Dev.team), виклав додаткову інформацію про опис стану помилок: загальні стани помилок та їх описи наведені в наступній таблиці:

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>'.

Ви можете бачити, що в журналі помилок цього екземпляра SQL Server не визначено суворості або рівня стану. Отже, наступним варіантом усунення несправностей є перегляд журналу безпеки переглядача подій [редагувати, оскільки знімок екрана відсутній, але ви отримаєте

ідея, подивіться у журналі подій цікаві події].


1
Дякуємо, подивимось і подивимось, як воно проходить
Средхар

1
мертве посилання, будь ласка, розгляньте про перегляд
Chris Hayes

10
Вища відповідь нижче цієї повинна бути обрана, а не ця.
void.pointer

4
Прочитайте публікацію нижче.
Леві Фуллер

6
@ void.pointer ОП вже встановило, що "Режим автентифікації на SQL Server встановлено як (Windows, так і SQL)". Тож публікація нижче не має відношення до цього питання.
Маначі

336

Вам потрібно включити автентифікацію SQL Server:

  1. У Провіднику об’єктів клацніть правою кнопкою миші сервер і натисніть "Властивості"

Діалогове вікно СУБД

  1. У вікні "Властивості сервера" натисніть на "Захист" у списку сторінок зліва. У розділі "Автентифікація сервера" виберіть параметр радіо "Режим автентифікації SQL Server та Windows".

Діалогове вікно автентифікації SQL Server

  1. Перезапустіть службу SQLEXPRESS.

29
О ДЯКУЄМО мільйон разів. В основному для слова "перезапустити" вище!
Магнус Сміт

4
Я знаю, що це старе, але це повністю врятувало мою дупу. Дякую, Пратеек. Оцініть це. НЕОБХІДНО перезапустити!
Леві Фуллер

3
Навіщо це робити, якщо в ОП явно зазначено, що "Режим аутентифікації на SQL Server встановлено як (Windows, так і SQL)"?
Тім Шмелтер

4
Ця відповідь є зайвою і не корисною для запитання. В ОП вже встановлено, що "Режим автентифікації на SQL Server встановлено як (Windows, так і SQL)".
Маначі

1
Це було дивовижно .. !! Спасибі PrateekSaluja
Амін

44

У мене була ця сама проблема, однак моя була, тому що я не встановив автентифікацію Сервера на "Режим автентифікації SQL Server та Windows" (який у вас був), я просто хотів згадати це тут, якщо хтось пропустив його у вашому запитанні.

Ви можете отримати доступ до цього за допомогою

  • Клацніть правою кнопкою миші на екземпляр (IE SQLServer2008)
  • Виберіть "Властивості"
  • Виберіть варіант "Безпека"
  • Змініть "Автентифікація сервера" на "Режим автентифікації SQL Server та Windows"
  • Перезапустіть службу SQLServer
    • Клацніть правою кнопкою миші на екземпляр
    • Натисніть "Перезапустити"

6
Я витратив як дві години, тому що я не отримував того, що мені потрібно РЕСТАРТИТИ весь сервер. Це просто божевільно, що для такої речі потрібен перезапуск. Майкрософт не має обмежень для того, щоб вони виплювали.
Зареєстрований користувач

1
Це також важлива відповідь, чому не можна підключитися до екземпляра Amazon EC2, який на ньому встановлений SQL-сервер.
Теоман шипахі

19

Ви можете отримати доступ до цього за допомогою

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

Просто для тих, хто читає це: Це працювало і для мене на SQL Server 2012. Дякую


1
Дякую, що це було ідеально, прямо до справи .. прийнята відповідь наповнена гарною інформацією, але це те, що працювало для мене.
Тоні

4
Це не може працювати для ОП, оскільки він зазначив, що "Режим автентифікації на SQL Server встановлено як (Windows, так і SQL)".
Тім Шмелтер

1

Правильне рішення проблеми полягає в тому, щоб переконатися, що для вашого SQL Server увімкнено автентифікацію сервера SQL.


1

Увімкнувши "Режим автентифікації SQL Server та Windows", перейдіть до наступного.

  1. Комп'ютерний довідник (у меню "Пуск")
  2. Послуги та програми
  3. Менеджер конфігурацій SQL Server
  4. Конфігурація мережі SQL Server
  5. Протоколи для MSSQLSERVER
  6. Клацніть правою кнопкою миші на TCP / IP та увімкніть її.

Нарешті перезавантажте SQL Server.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.