Поделиться через


Периодические или периодические проблемы проверки подлинности в SQL Server

Примечание.

Прежде чем приступить к устранению неполадок, рекомендуется проверить предварительные требования и ознакомиться с контрольным списком. Дополнительные сведения см. в статьях самообслуживания.

В этой статье описываются распространенные причины периодических проблем проверки подлинности в подключении к SQL Server и предоставляют решения.

Симптомы

Периодические или периодические проблемы с проверкой подлинности в подключении SQL Server возникают, когда пользователи или приложения сталкиваются с проблемами проверки подлинности с базой данных SQL Server. Это приводит к сбоям в доступе к данным и функциональных возможностях приложений.

Наиболее распространенные сообщения об ошибках

  • Невозможно создать контекст SSPI

  • Сбой входа для пользователя

    • Сбой входа для пользователя ''
    • Неудачная попытка входа пользователя «NT AUTHORITY\ANONYMOUS LOGON»
    • Сбой входа для пользователя UserName<>
    • Сбой входа для пользователя< Domain>\<UserName>
    • Ошибка входа. Имя входа осуществляется из недоверенного домена и не может использоваться с проверка подлинности Windows.

Причина

Наиболее распространенные проблемы вызваны ответом SQL Server на производительность или медленный контроллер домена. При использовании NT LAN Manager (NTLM) служба подсистемы локального центра безопасности (LSASS) имеет узкие места и ограничивает количество новых подключений одновременно. Другие запросы резервируются и могут истекать. Некоторые причины, такие как антивирусная программа, может быть трудно доказать, но по-прежнему распространены и должны быть расследованы даже без жесткого доказательства, если другие способы расследования неэффективны.

Процесс устранения неполадок

Так как проблема периодически возникает, скорее всего, конфигурация, например имена субъектов-служб Kerberos, правильно. Чтобы устранить эту проблему, выполните следующие действия по устранению неполадок:

Разница в задержке между несколькими доменами или центрами обработки данных

Если участвуют несколько доменов или центров обработки данных, проверьте, не возникают ли проблемы пользователи в локальном домене или центре обработки данных, а пользователи в других доменах или центрах обработки данных. В этом случае может указываться задержка связи между центрами обработки данных или контроллерами домена. Используйте следующие команды для исследования проблемы:

  • Чтобы проверить задержку сети, используйте проверку ping. Например:

    1. Выполните следующую команду: ping <DatabaseServer>.

    2. Просмотрите столбец времени и сравните это время с тем, что в другом домене или центре обработки данных:

      Pinging <DatabaseServer> [10.10.10.3] with 32 bytes of data:
      Reply from 10.10.10.3: bytes=32 time=68ms TTL=116
      Reply from 10.10.10.3: bytes=32 time=67ms TTL=116
      Reply from 10.10.10.3: bytes=32 time=67ms TTL=116
      
  • Чтобы проверить проблемы с задержкой проверки учетных данных, используйте Runas с различными пользователями. Например:

    1. Запустите runas /user:<DomainName>\<UserAccountName> cmd.exe.
    2. Введите пароль пользователя после того, как появится командная строка.

Если проблема сохраняется даже после тестирования с этими командами, проблема не связана с SQL Server, а с производительностью сетевой инфраструктуры или контроллера домена.

Поиск проблем с производительностью в журнале ошибок SQL Server

Журнал ошибок SQL Server может выявить проблемы с производительностью в SQL Server, например записи, указывающие, что операции ввода-вывода занимают более 15 секунд. Команда по производительности SQL имеет PSSDIAG для выполнения и анализа. Это может потребоваться, если трассировка сети обнаруживает задержки в ответах SQL Server.

Журнал ошибок также может включать другие ошибки, связанные с доменом, например следующий журнал ошибок, указывающий на некоторые проблемы с производительностью Active Directory:

SSPI handshake failed with error code 0x80090311 while establishing a connection with integrated security; the connection has been closed.
SSPI handshake failed with error code 0x80090304 while establishing a connection with integrated security; the connection has been closed.

Следующие коды ошибок операционной системы указывают на причину сбоя:

  • Ошибка -2146893039 (0x80090311): для проверки подлинности невозможно связаться с центром.

  • Ошибка -2146893052 (0x80090304): не удается связаться с локальным центром безопасности.

Просмотр журналов событий в клиентской системе для ошибок сети

В журнале системных событий есть различные события, такие как Kerberos, локальный центр безопасности (LSA) и события Netlogon. Эти события указывают, что компьютер не может подключиться к контроллеру домена в течение некоторого времени. Чтобы упростить поиск, отфильтруйте только ошибки, предупреждения и критические события. Время события должно находиться в течение времени сбоя. Если есть совпадение, это может быть проблема Active Directory.

В некоторых случаях эта проблема может возникнуть на SQL Server. Проверьте также журналы на этом компьютере.

Source: NETLOGON
Date: <DateTime>
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: SQLPROD01
Description:
This computer was not able to set up a secure session with a domain controller in domain CONTOSO due to the following: The remote procedure call was cancelled. This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.

В журнале событий безопасности фильтруйте идентификатор события 4625. Это событие содержит подробные сведения о сбое входа.

Сбор и проверка буфера кольца подключения SQL

Кольцевой буфер — это журнал событий подключения в SQL Server, что означает, что его можно принять после сбоя. Многие события включают таймеры входа, которые сообщают вам, где тратится время:

  • Время, затраченное на сеть, указывает на возможную задержку сети или клиента.
  • Время, затраченное на API-интерфейсы протокола SSL или интерфейса поставщика поддержки безопасности (SSPI), указывает на потенциальные проблемы с подсистемой безопасности Windows.
  • Время, затраченное на выполнение, указывает на проблему производительности SQL Server.

Дополнительные сведения см. в разделе "Сбор буфера кольца подключения".

Организация пулов соединений

Отсутствие пула подключений может привести к периодическим сбоям входа.

Примечание.

Отсутствие пула подключений будет отображать большое количество TIME_WAIT кодов состояния в NETSTAT выходных данных по сравнению с установленными подключениями.

Если пул подключений не включен, клиент может выйти из исходящих портов, а также перегрузить сервер. Эта перегрузка может привести к отклонению входящих запросов на подключение или наводнению плохо выполняющегося контроллера домена.

Лучше всего сделать, чтобы разработчик приложений использовал пул подключений в своих приложениях. Пул подключений включен по умолчанию в приложениях .NET и службы IIS (IIS), но по какой-то причине он может быть отключен.

Настоятельно не рекомендуется использовать пользовательский код пула приложений. Почти все пользовательские реализации пула, с которыми мы столкнулись, возникли проблемы. Лучше использовать встроенный механизм пула подключений.

Истечение временных портов является относительно распространенной причиной временных превышений времени ожидания подключения.

Проблема: низкая память ядра на компьютере SQL Server.

Решение. Настройте максимальный объем памяти сервера (МБ) в области свойств в SQL Server Management Studio. Рекомендуется задать максимальный объем памяти сервера (МБ) примерно на 4 ГБ до 8 ГБ меньше физической памяти на компьютере. Это значение должно быть меньше, если на компьютере работает несколько экземпляров, IIS или некоторые другие серверы приложений. Рекомендации по параметру максимальной памяти сервера (МБ) см. в разделе "Параметры конфигурации памяти сервера".

Примечание.

Значение по умолчанию — 2147483647 MBэто означает, что сервер может привести к нехватке памяти операционной системы (ОС).