Сообщение, которое показывает средство просмотра файлов журнала SQL Server:
Login failed for user [User]
Error: 18456, Severity: 14, State 38
Что это на самом деле означает:
Failed to open the explicitly specified database
Мой вопрос:
Есть ли где-нибудь список всех вариантов ошибок 18456 (Ошибка входа в систему), для каждой комбинации серьезности и состояния, с полезным текстом описания?
У меня есть Google, но я не могу найти ничего, кроме определенных комбинаций.
sql-server
errors
logins
Пит Оки
источник
источник
У меня была такая же ошибка с кодом состояния 38, вызванная опечаткой имени базы данных в строке подключения.
источник
Вот что я обнаружил, когда исправил эту ошибку: я создал несколько SQL-соединений, используя windows login, а не имя пользователя и пароль. Не совсем уверен, что или как это произошло, но это произошло. Я удалил их, а затем перестроил свои модели сущностей. Я использовал другую строку подключения, которая, как я знал, была хорошей, и все было радостью. Ключ - Persist Security Info = True, который не будет работать в сети или на внешнем веб-сайте.
источник
У меня был 18456 с состоянием 38, а также. Оказалось, что строка подключения имеет «встроенную безопасность = истина», а это не то, что я хотел. Строка соединения содержала идентификатор пользователя и пароль, которые должны были использоваться. Когда я изменил настройку на false, все было хорошо.
источник
Я получил эту ошибку при попытке войти в SQL Server с несколькими экземплярами. Строка подключения не назвала экземпляр. После того как я назвал экземпляр (SERVERNAME \ INSTANCENAME), мне удалось подключиться к серверу.
источник
@ Пит Оукли находится на правильном пути со списком кодов штатов. В частности, это код, который нас всех интересует:
Моя проблема началась в журнале ошибок C #:
Мои глаза были сосредоточены на части «Ошибка входа» . Мой пользователь был sa для этого сервера БД, как может произойти сбой входа в систему?
Я наткнулся на этот пост трио программистов, у которых был ответ: https://justaprogrammer.net/2012/12/09/a-misleading-sql-error-message-error-18456-severity-14-state-38 /
Это не ошибка входа в систему как таковая, это база данных, к которой я пытаюсь получить доступ. Этого не существует!
Бинго! Я изменил имя базы данных по другим причинам и не обновил файл конфигурации. Исправлено имя БД и все снова работает как шарм.
источник
В нашем случае в диспетчере конфигурации SQL Server | Конфигурация сети SQL Server | TCP / IP | IP | TCP - порт был НЕ установлен.
Без этого мы не могли бы установить соединение ODBC и даже использовать удаленное соединение SQL Management Studio и войти в систему с пользователем. Однако каждый раз, когда мы обращались к URL-адресу нашего приложения Tomcat, он запускал соединение jdbc, а затем в журнале SQL Server обнаруживал ошибку: сбой входа для пользователя 'xxxx': причина Не удалось открыть явно определенную базу данных, ошибка 18456, уровень серьезности 14 Штат 38
Здесь аннотация строки соединения JDBC
Это, чтобы сказать, что также в конфигурации сети SQL Server | Протоколы для <имя экземпляра> | Именованные каналы должны быть включены, а имя трубы
\\.\pipe\MSSQL$<instance name>\sql\query
должно быть установлено правильно.источник
Ну, это ошибка, связанная с разрешением базы данных. Я добавляю свое решение в этом вопросе, потому что очень важно понимать роль администратора баз данных. Итак, есть мои предложения:
Теперь войдите под этим именем пользователя, и вы сможете предоставить доступ пользователю. Для этого:
Зайдите в Security , щелкните правой кнопкой мыши на Logins и выберите New Login
В окне входа в систему вы можете ввести имя пользователя или выполнить поиск. Выберите пользователя из списка и нажмите OK и снова OK .
В том же окне входа в систему нажмите на роли сервера и предоставьте доступ выбранному пользователю, например: sysadmin, serveradmin, decreator и т. Д .; нажмите OK .
Если вы хотите предоставить доступ к отдельной базе данных, перейдите в раздел «Отображение пользователей» и предоставьте доступ в соответствии с вашими требованиями.
Проверьте статус базы данных: Разрешение: Предоставить логин: Включено
Нажмите ОК
источник