Вы можете столкнуться с ошибкой SQL Server 18456, если сервер не может аутентифицировать соединение, и это может быть вызвано недоступностью прав администратора для SQL-сервера или если протокол TCP / IP отключен в настройках SQL-сервера.
Проблема возникает, когда пользователь пытается подключиться к серверу SQL (локальному или удаленному), но обнаруживает ошибку 18456 (с разными состояниями).
Ошибка Microsoft SQL Server 18456
Вы можете исправить ошибку SQL-сервера 18456, попробовав приведенные ниже решения, но перед этим проверьте, решает ли проблему перезагрузка сервера, клиентского компьютера и сетевых компьютеров. Кроме того, убедитесь, что вы вводите правильное имя пользователя и пароль (а не копируете адрес).
Также проверьте, правильно ли вы вводите имя базы данных (без опечаток), и убедитесь, что вы соответствующим образом обновили файл конфигурации. Кроме того, проверьте, решает ли проблему разблокировка учетной записи (с помощью запроса ALTER LOGIN WITH PASSWORD = UNLOCK). Если вы видите ошибки в журнале ошибок SQL, убедитесь, что ваш SQL-сервер не атакован. И последнее, но не менее важное: убедитесь, что часы сервера и клиентского компьютера установлены правильно.
Вы можете столкнуться с ошибкой 18456, если SQL-сервер не имеет повышенных разрешений на выполнение своей операции, и запуск его от имени администратора (или отключение элементов управления UAC на сервере) может решить проблему.
Откройте SQL Server от имени администратора
- Щелкните Windows и введите SQL Server Management Studio.
- Теперь щелкните правой кнопкой мыши SMSS и выберите «Запуск от имени администратора».Запустите Microsoft SQL Server Management Studio от имени администратора.
- Затем нажмите Да (если получено приглашение UAC) и проверьте, не содержит ли SQL-сервер ошибки 18456.
- Если нет, проверьте, решает ли проблему отключение UAC на сервере.
Запуск SQL Server в однопользовательском режиме
- Щелкните Windows, введите и откройте диспетчер конфигурации SQL Server.
- Теперь щелкните правой кнопкой мыши службу SQL Server (на вкладке «Службы SQL Server») и выберите «Свойства».Откройте свойства SQL Server
- Затем перейдите на вкладку Параметры запуска и в поле Укажите параметр запуска введите: -m
- Теперь нажмите «Добавить» и примените изменения.Добавьте параметр «-m» к параметрам запуска SQL Server.
- Затем щелкните правой кнопкой мыши службу SQL Server и выберите «Перезагрузить».Перезапустите службу SQL Server.
- Теперь щелкните Windows, введите: SQL Server Management Studio, щелкните правой кнопкой мыши SMSS и выберите Запуск от имени администратора.
- Теперь проверьте, можете ли вы подключиться к SQL Server от имени администратора.
- Если это так, добавьте учетную запись домена на SQL-сервер и назначьте ей роль SysAdmin.
- Теперь вернитесь в окно диспетчера конфигурации SQL Server и удалите параметр -m на вкладке Параметры запуска.
- Затем перезапустите службу SQL Server (шаг 3) и проверьте, нормально ли работает SQL-сервер.
Если проблема не исчезнет, проверьте, правильно ли настроены параметры запуска или сведения о пути. Если проблема все еще существует, убедитесь, что ваша учетная запись пользователя имеет необходимые разрешения для служб базы данных / отчетов, а затем проверьте, решена ли проблема.
Включите протокол TCP / IP в диспетчере конфигурации сервера.
Код ошибки 18456 на сервере SQL означает, что серверу не удалось аутентифицировать соединение, и это может произойти, если протокол TCP / IP, необходимый для доступа к базе данных в сети, отключен в диспетчере конфигурации сервера. В этом контексте включение TCP / IP в диспетчере конфигурации SQL Server может решить проблему.
- Щелкните Windows и разверните Microsoft SQL Server, указав год, например, 2008 (вам может потребоваться немного прокрутить, чтобы найти параметр).
- Теперь откройте диспетчер конфигурации SQL Server и нажмите Да (если получено приглашение UAC).
- Затем разверните сетевую конфигурацию SQL Server и выберите Протоколы для (имя сервера / базы данных) на левой панели.
- Теперь на правой панели дважды щелкните TCP / IP и выберите Да в раскрывающемся списке Включено.Откройте TCP / IP в протоколах конфигурации сети SQL Server
- Затем примените изменения и щелкните Windows.Включить TCP / IP в SQL
- Теперь введите «Службы», щелкните правой кнопкой мыши результат «Службы» и выберите «Запуск от имени администратора».Откройте службы в качестве администратора
- Затем щелкните правой кнопкой мыши SQL Server (с именем сервера) и выберите «Перезагрузить».Перезапустите службу SQL в окне служб.
- Теперь проверьте, очищен ли SQL-сервер от ошибки 18456.
Если это не помогло, убедитесь, что вы подключаетесь к правильному порту SQL-сервера (особенно, если вы используете сервер в многосерверной среде).
Измените режим аутентификации SQL Server
Сервер SQL может отображать ошибку 18456, если метод аутентификации сервера SQL не настроен должным образом (например: вы пытаетесь войти в систему с использованием аутентификации сервера SQL, тогда как сервер настроен на использование аутентификации Windows). В этом случае изменение метода аутентификации SQL-сервера может решить проблему. Прежде чем двигаться дальше, убедитесь, что для текущего пользователя включен статус входа в систему (например, SA).
- В обозревателе объектов Microsoft SQL Server Management Studio щелкните правой кнопкой мыши свой сервер и выберите «Свойства».
- Теперь на левой панели выберите Безопасность, а на правой панели выберите SQL Server и проверку подлинности Windows (или наоборот).Включить SQL Server и проверку подлинности Windows
- Затем примените изменения и в обозревателе объектов щелкните правой кнопкой мыши сервер.
- Теперь выберите «Перезагрузить» и после перезапуска проверьте, можете ли вы подключиться к базе данных без ошибки 18456.
Если вы не можете войти в SQL, вы можете установить MS Power Tools и выполнить следующую команду с повышенными привилегиями:
psexec.exe -i -s ssms.exe
После этого вы можете использовать учетную запись установки SQL, чтобы внести изменения, а также убедиться, что учетная запись SA не отключена:
Включите учетную запись SA и сбросьте пароль учетной записи
Если вы не можете подключиться к SQL Server, то включение учетной записи SA SQL-сервера и сброс его пароля может решить проблему.
- Запустите Microsoft SQL Server Management Studio (возможно, вам придется использовать учетную запись администратора домена) и разверните Безопасность.
- Затем дважды щелкните Logins и откройте SA.Откройте учетную запись SA в Microsoft SQL Server Management Studio.
- Теперь введите новый пароль и подтвердите его (убедитесь, что вы используете надежный пароль).
- Затем перейдите на вкладку Server Roles и убедитесь, что выбраны следующие роли: Public SysadminВключение ролей общедоступного сервера и сервера системного администратора для учетной записи SA
- Теперь перейдите на вкладку «Статус» и на правой панели выберите «Включено» (в разделе «Вход»).Включение учетной записи SA в SQL
- Затем примените изменения и нажмите кнопку Windows.
- Теперь введите Services и щелкните его правой кнопкой мыши.
- Затем выберите «Запуск от имени администратора» и перейдите к службе SQL Server.
- Теперь щелкните его правой кнопкой мыши и выберите «Перезагрузить».
- После перезапуска службы проверьте, устранена ли ошибка 18456 SQL-сервера.
Создайте новый логин и перезапустите службы Reporting Services
Если вы не можете использовать какую-либо учетную запись для подключения к базе данных, то создание новой учетной записи и перезапуск служб отчетов может решить проблему.
- Запустите Microsoft SQL Server Management Studio и разверните вкладку «Безопасность».
- Затем разверните Логины и щелкните его правой кнопкой мыши.
- Теперь выберите «Новый вход» и введите учетные данные (в имени входа выберите учетную запись компьютера), если используется проверка подлинности SQL Server.Создать новый логин в SQL Server
- Затем не забудьте снять флажок «Пользователь должен сменить пароль при следующем входе в систему» и выберите базу данных.
- Теперь перейдите на вкладку Server Roles и выберите роль Public.
- Затем на вкладке «Сопоставление пользователей» обязательно выберите базу данных и выберите db_owner.Выберите db_owner для базы данных в SQL
- Теперь примените ваши изменения и щелкните Windows.
- Затем введите Services и щелкните правой кнопкой мыши результат Services. Затем выберите Запуск от имени администратора.
- Теперь щелкните правой кнопкой мыши службу отчетов SQL Server и выберите «Перезагрузить».Перезапустите службу отчетов SQL Server.
- Затем повторно подключитесь к базе данных и проверьте, очищен ли сервер SQL от ошибки 18456.
Если это так, убедитесь, что вы создали пользователя в BUILTIN administrators, и затем вы можете использовать этого пользователя для управления SQL Server. Если вы восстановили базу данных из резервной копии, будет лучше удалить и повторно добавить пользователей, чтобы удалить все старые записи пользователей. Если вы хотите запустить SQL-сервер от имени другого пользователя, введите Microsoft SQL Server в поиске Windows, Shift + щелкните правой кнопкой мыши на SQL Server и выберите «Запуск от имени другого пользователя». И последнее, но не менее важное: проверьте, решает ли проблема использование Azure Data Studio с сервером SQL.
Sql server error 18456 is common issue appear during login process on Microsoft SQL Server. This error can happen when you try to login with local administrator, as well as under the domain administrator and under the sa. Microsoft SQL Server login failed error can be encountered due to varied reasons. Most of the time, an error code comes up with a description that gives a hint about what has gone wrong. But I some cases the error come without any description. In this article, we’ll take a look at the typical reasons of the error 18456 appear on SQL Server during login process and show different ways to solve this error.
The view of error:
“Login failed for user ‘<user_name>’. (Microsoft SQL Server, Error: 18456)”.
How To FIX SQL Server Error 18456
Troubleshoot with Short Solutions
Here, you have some possible reasons:
- The login does not exist or was not typed correctly
- Make sure that the username or password are correct
- The password is incorrect
- The user forgot the password or login
- The Windows Authentication is not in Mixed mode
- A virus resets all the passwords
- A malicious hacker reset the password
- The logins were damaged or the master database is damaged
- The database was migrated, but the logins were not migrated
- The administrator modified the passwords by mistake
- Restart the SLQ Server service
Troubleshoot with State of the Microsoft SQL error 18456
Most of the time the SQL error 18456 come with the severity and state number. A state number might not mean much, yet it can offer more details as to what is wrong and where to look next.
To get a more detailed info about Microsoft SQL Server Error 18456 reason, you need to open the SQL Server error log file – ERROR.LOG. This is plain text file located under folder MSSQLLog. Below are some states of the error 18456 sql server. The descriptions and potential solutions offer a quick explanation and potential troubleshooting guide.
State | Error Description |
1 | Error information is not available. This state usually means you do not have permission to receive the error details |
2 | Invalid user ID |
5 | User ID is not valid. |
6 | Attempt to use a Windows login name with SQL Authentication |
7 | Login disabled |
8 | Password is incorrect |
9 | Password is not valid |
11-12 | Valid login but server access failure |
13 | SQL Server service paused |
16 | Authorization is correct, but access to the selected database is not allowed |
18 | Change password required |
27 | Initial database not found |
38 | Could not find database requested by user |
102 – 111 |
AAD failure. |
122 – 124 | Failure due to empty user name or password. |
126 | Database requested by user does not exist. |
132 – 133 | AAD failure. |
Common Solution for Error 18456
If the issue cannot be resolved from with short solutions above, read below for additional information:
Read also other SQL Server Helping Posts:
- SQL Server Error 233
- Fix SQL server error 26 and error 40
- Restore Master Database
Checking the Server Authentication Mode
In this case you are trying to login on SQL Server using sql user. Once we login to SSMS using Windows Authentication, we need to check the security settings to confirm whether MSSQL is set up to allow both Windows and SQL Authentication.
Check and Change SQL Server Authentication Mode from GUI:
- In SSMS, right-click the Server Name at the top of the Object Explorer window and choose Properties.
- Next, click the Security page.
- If you find Windows Authentication is the only mode configured, this is the likely cause of sql server error 18456, Login failed for user ‘’.
- Setting the Server authentication mode to allow SQL Server and Windows Authentication, you will be able to login to MS-SQL with a SQL user and password or a Windows user and password. After making this change, you will need to restart the SQL Server service.
Server Authentication Mode
Change SQL Server Authentication Mode from regedit
You can use the registry to modify the authentication mode. Use the regedit to change the registry:
Image (regedit)
- machineHKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQLXX.MSSQLSERVERMSSQLServer
- Change the login mode value.
- 2 is mixed mode.
- 1 is Windows Authentication.
Change SQL Server Authentication Mode from regedit
Checking pass expired or login disabled
Check out that the password is not expired.
- Open SSMS, Instance – Security – Logins and find the user that have issue
- On general tab check if the Enforce password expiration and enforce password policy are checked
- Un-check them
Check out that the login is enabled.
- Open SSMS, Instance – Security – Logins and find the user that have issue
- On status tab and check if is selected the “Enabled” option
Reset the Password of the user
If you forget your password, you can ask your DBA to reset your account. The easiest way to reset the password is by using SQL Server Management Studio (SSMS).
- Go to security and Logins:
- Select the login and you can change the password:
Checking pass expired or login disabled
- If you do not like to use SSMS, you can use T-SQL to create users and change the password:
USE [master] GOALTER LOGIN [Test] WITH ‘newpasswordtest’GOChange Windows Authentication
So we hope that you fixed the issue with the sql server error 18456.
Microsoft SQL Server login failed error 18456 can be encountered due to varied reasons. When this error occurs, the server name entered is correct, but because of some unanticipated reasons, the permission to login cannot be granted. This error can be confronted in spite of the SQL Server edition or its type (Enterprise or Express) in use.
Introduction
Most of the time, an error code comes up with a description that gives a hint about what has gone wrong. But unfortunately, in case of SQL Server error 18456 on screen, no cause of login failure is displayed. This is an intended development of the application in order to have protection against unauthorized users (probably, someone is trying to have entry to the server on the basis of guess information). However, the administrator can check out the event log in order to get details about occurrence of SQL Server error 18456.
Cause of Microsoft SQL Server Login Failed Error 18456:
1: At the time of Server login, if either the username or password is incorrect, the error will be generated.
2: When an SQL Server instance is logged in for the very first time, possibility is that the users encounter SQL Server error 18456. This generally happens when the “Windows Authentication” is enabled under the security section and SQL Server is unable to recognize the user.
3: Possibility is that the password for login is expired. This can also happen while disabling the username on server.
Steps to Fix SQL Server Error 18456
Before we get started with the troubleshooting steps, make sure that the login credentials (username and password) entered is correct.
If Windows Vista or Windows 7 is used, then run SQL Server through Run as Admin option. This might give a solution.
If Windows authentication is enabled and the error is received, then use the SQL SA credentials. Moreover, check out if the Windows Active Directory has SQL login information associated. In order to add a user to the SQL Server DB, there are two things that must be available:
- Server Administrator Access
- System Admin (SA) Password
If SQL Server authentication mode is used to login to Server, then SQL System Admin credentials would be required. Before login check out that the password is not expired. For that, open SSMS, right click on server name and choose “Properties”.
You can also check out if password expiration is enabled. For that, select “General” tab and see if “Enforce Password Expiration” is enabled or disabled.
Select “Status” tab and find out if the account is locked. If the account is not locked, the “Login is locked out” will be disabled.
Check out Windows or Mixed authentication mode is enabled. For that, select the database, right click on it, and choose “Properties”. In the Security tab, check out the server authentication section.
If the authentication mode is changed, then do not forget to restart SQL Server to allow changes to take place.
Conclusion
Any of the above mentioned fixes can help to fix Microsoft SQL Server login failed error 18456. it is recommended to move in a systematic order and go for primary work around (credentials testing, modes to run application). However, if the above procedures failed to fix SQL Server error 18456 then one can also go through SQL password recovery tool to reset lost SA password of SQL Server in a short span of time.
You may encounter the SQL Server Error 18456 if the server could not authenticate the connection and this can be caused by the non-availability of the administrator rights to the SQL server or if the TCP/IP protocol is disabled in the SQL server settings.
The issue arises when the user tries to connect to the SQL server (local or remote) but encounters the error 18456 (with different states).
You can fix the SQL server error 18456 by trying the solutions below but before that, check if restarting the server, client computer, and networking computers solves the issue. Moreover, make sure you are typing the correct username and password (not copy-pasting the address).
Also, check if you are entering the correct database name (no typo in it) and make sure you have updated the configuration file accordingly. Furthermore, check if unlocking the account (by using the query ALTER LOGIN WITH PASSWORD= UNLOCK) solves the issue. If you are seeing the errors in the SQL errors log, then make sure your SQL server is not under attack. Last but not least, make sure the server’s clock and client computer clock is correctly set.
Launch the SQL Server as Administrator and Disable UAC on the Server
You may encounter the error 18456 if the SQL server does not have the elevated permissions to execute its operation and launching it as administrator (or disabling the UAC controls on the server) may solve the problem.
Open the SQL Server as Administrator
- Click Windows and type SQL Server Management Studio.
- Now right-click on SMSS and select Run as Administrator.
Launch Microsoft SQL Server Management Studio as Administrator - Then click Yes (if UAC prompt received) and check if the SQL server is clear of the error 18456.
- If not, then check if disabling UAC on the server machine solves the issue.
Launch the SQL Server in a Single User Mode
- Click Windows, type, and open the SQL Server Configuration Manager.
- Now right-click on the SQL Server service (in the SQL Server Services tab) and select Properties.
Open Properties of the SQL Server - Then head to the Startup Parameters tab and in the Specify a Startup Parameter box, type:
-m
- Now click on Add and apply the changes.
Add the “-m” Parameter to the Startup Parameters of the SQL Server - Then right-click on the SQL Server service and select Restart.
Restart the SQL Server Service - Now click Windows, type: SQL Server Management Studio, right-click on SMSS, and select Run as Administrator.
- Now check if you can connect to the SQL Server as administrator.
- If so, then add the domain account to the SQL server and assign it the SysAdmin role.
- Now go back to the SQL Server Configuration Manager window and remove the -m parameter in the Startup Parameters tab.
- Then restart the SQL Server service (step 3) and check if the SQL server is working fine.
If the issue persists, check if the startup parameters or path details are properly configured. If the issue is still there, make sure your user account does have the required permissions to the database/ reporting services, and then check if the issue is resolved.
Enable the TCP/IP Protocol in the Server Configuration Manager
The error code 18456 in the SQL server means that the server could not authenticate the connection and this can happen if the TCP/IP protocol required to access the database on a network is disabled in the Server Configuration Manager. In this context, enabling the TCP/IP in the SQL Server Configuration Manager may solve the problem.
- Click Windows and expand Microsoft SQL Server with a year name like 2008 (you may need to scroll a bit to find the option).
- Now open SQL Server Configuration Manager and click Yes (if UAC prompt received).
- Then, expand SQL Server Network Configuration and select Protocols for (the server/database name) in the left pane.
- Now, in the right pane, double-click on TCP/IP and select Yes in the dropdown of Enabled.
Open TCP/IP in Protocols of SQL Server Network Configuration - Then apply your changes and click Windows.
Enable TCP/IP in SQL - Now type Services, right-click on the result of Services, and select Run as Administrator.
Open Services as Administrator - Then right-click on the SQL Server (with the server’s name) and select Restart.
Restart the SQL Service in the Services Window - Now check if the SQL server is clear of the error 18456.
If that did not do the trick, then make sure you are connecting to the right port of the SQL server (especially if you are using the server in a multi-server environment).
Change the Authentication Mode of the SQL Server
The SQL server might show the error 18456 if the authentication method of the SQL server is not properly configured (e.g: you are trying to login using SQL server authentication whereas the server is configured to use the Windows authentication). In this case, changing the authentication method of the SQL server may solve the problem. Before moving on make sure the status login for the present user (for example SA) is enabled.
- In the Object Explorer of Microsoft SQL Server Management Studio, right-click on your server and select Properties.
- Now, in the left pane, select Security, and in the right pane, select SQL Server and Windows Authentication (or vice versa).
Enable SQL Server and Windows Authentication - Then apply your changes and in the Object Explorer, right-click on the server.
- Now choose Restart and once restarted, check if you can connect to the database without error 18456.
If you cannot log into SQL, then you may install MS Power Tools and run the following in an elevated command:
psexec.exe -i -s ssms.exe
Afterward, you may use the installation account of SQL to make the changes and also make sure the SA account is not disabled:
Enable the SA Account and Reset the Account Password
If you cannot connect to the SQL Server, then enabling the SA account of the SQL server and resetting its password may solve the problem.
- Launch Microsoft SQL Server Management Studio (you may have to use the domain admin account) and expand Security.
- Then double-click on Logins and open SA.
Open the SA Account in the Microsoft SQL Server Management Studio - Now enter a new password and confirm the password (make sure you use a strong password).
- Then head to the Server Roles tab and make sure the following roles are selected:
Public Sysadmin
Enable the Public and Sysadmin Server Roles for the SA Account - Now head to the Status tab and in the right pane, select Enabled (under Login).
Enable the SA Account in SQL - Then apply your changes and click the Windows button.
- Now type Services and right-click on it.
- Then select Run as Administrator and steer to the SQL Server service.
- Now right-click on it and select Restart.
- Once the service is restarted, check if the error 18456 of the SQL server is cleared.
Create a New Login and Restart the Reporting Services
If you cannot use any account to connect to the database, then creating a new login and restarting the reporting services may solve the problem.
- Launch the Microsoft SQL Server Management Studio and expand its Security tab.
- Then expand Logins and right-click on it.
- Now select New Login and enter the credentials (in the login name select the computer account) if using the SQL Server Authentication.
Create a New Login in the SQL Server - Then make sure to uncheck “User Must Change Password at Next Login” and select the database.
- Now head to the Server Roles tab and select the Public role.
- Then, in the User Mapping tab, make sure to choose the database and select db_owner.
Select db_owner for the Database in SQL - Now apply your changes and click Windows.
- Then type Services and right-click on the result of Services. Then select Run as Administrator.
- Now right-click on the SQL Server Reporting Service and select Restart.
Restart the SQL Server Reporting Service - Then reconnect to the database and check if the SQL server is clear of the error 18456.
If so, make sure that you have created a user in BUILTINadministrators, and then you can use that user to manage the SQL Server. If you have restored the database from a backup, it will be better to remove and re-add the users to clear any old user entries. If you want to run the SQL server as a different user, then type Microsoft SQL Server in the Windows Search, Shift+Right-click on the SQL Server, and select Run as a Different User. Last but not least, check if using Azure Data Studio with the SQL server sorts out the issue.
Kevin Arrows
Kevin is a dynamic and self-motivated information technology professional, with a Thorough knowledge of all facets pertaining to network infrastructure design, implementation and administration. Superior record of delivering simultaneous large-scale mission critical projects on time and under budget.