Часто бывает такая проблема — SQL Server не может авторизовать пользователя и сообщает примерно следующее:
Msg 18456, Level 14, State 1, Server ’server name’, Line 1
Login failed for user ‘user name’
И никаких подробностей об истинной причине отказа. К сожалению, SQL Server 2000 этим сообщением и ограничивается, однако Microsoft SQL Server 2005 научился более подробно описывать ситуацию. Для того, чтобы узнать, почему логин не прошел, необходимо посмотреть лог SQL сервера.
Вот пример записи лога, в котором описана проблема логина:
2006-02-27 00:02:00.34 Logon Error: 18456, Severity: 14, State: 8.
2006-02-27 00:02:00.34 Logon Login failed for user ‘‘. [CLIENT: ]
Нас интересует значение поля State. Ниже представлена таблица с расшифровкой некоторых значений этого поля.
| 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 |
| 16 | User doesn’t have permission to log into the target database or database is not exist |
| 18 | Change password required |
| 27 | server could not determine the initial database for the session |
https://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx