Проблема
Рассмотрим следующий сценарий.
- У вас есть автономная база данных в Microsoft SQL Server 2012 или SQL Server 2014.
- Приложение пытается подключиться к содержащейся базе данных, включив пул подключений.
- Приложение использует проверку подлинности SQL Server.
В этом случае приложению может не удаваться подключиться к базе данных. Кроме того, в журнале ошибок SQL Server вы найдете ошибки, похожие на следующие:
Примечание
дата и время Ошибка входа в систему: 18456, серьезность: 14, состояние: 5.
datetime — вход в систему — сбой входа для SID пользователя. Причина: Не удалось найти логин, соответствующий указанному имени [клиент:]
datetime spid# Error: 18056, Severity: 20, State: 5.
datetime spid# Клиенту не удалось повторно использовать сеанс с SPID #, который был сброшен для пула подключений. Идентификатор ошибки: #. Эта ошибка могла быть вызвана сбоем предыдущей операции. Проверьте журналы ошибок на наличие неудачных операций непосредственно перед этим сообщением об ошибке.
Примечание. Эта проблема не возникает при первом подключении к содержащейся базе данных. Тем не менее, проблема возникает во всех последующих попытках.
Решение
Эта проблема была впервые исправлена в следующем накопительном пакете обновления SQL Server.
Накопительный пакет обновления 1 для SQL Server 2014 г. /en-us/help/2931693
Накопительный пакет обновления 7 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2894115
Сведения о накопительных обновлениях для SQL Server
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2014
- Последний накопительный пакет обновления для SQL Server 2012 с пакетом обновления 1 (SP1)
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Дополнительные сведения
Это обновление также устраняет другую проблему, из-за которой следующие встроенные функции возвращают ИД безопасности пользователя вместо имени пользователя:
- SUSER_SNAME
- SUSER_NAME
- SYSTEM_USER
Примечание. Это обновление гарантирует, что эти функции всегда возвращают имя пользователя, независимо от того, используется ли автономная база данных.
Ссылки
Терминология, используемая корпорацией Майкрософт для описания обновлений программного обеспечения.