Пользователи могут не иметь возможности удаленно подключаться к SQL Server с помощью протокола TCP/IP
Эта статья поможет устранить проблему, из-за которой вы не сможете удаленно подключаться к SQL Server с помощью протокола TCP/IP.
Исходная версия продукта: SQL Server
Исходный номер базы знаний: 2018930
Симптомы
При использовании Microsoft SQL Server может возникнуть один или несколько следующих симптомов:
Только пользователи с разрешением CONTROL SERVER (например, члены предопределенных ролей сервера syadmin ) могут подключаться через TCP/IP. Пользователи, у которых нет этого разрешения, не могут удаленно подключаться через протокол TCP/IP либо с помощью проверки подлинности Windows или SQL Server.
Примечание.
Вы заметите, что повышенные привилегии пользователей отображаются только в режиме динамического управления sys.dm_exec_sessions (Transact-SQL), но не в представлении sys.dm_exec_connections (Transact-SQL).
Локальные и удаленные подключения с использованием протокола именованных каналов, а также локальные подключения с использованием протокола общей памяти продолжают работать нормально.
Кроме того, следующие сообщения регистрируются в файле журнала ошибок SQL Server:
При запуске SQL Server:
Ошибка: 26023, серьезность: 16, состояние: 1.
Поставщик TCP сервера не смог прослушивать ['any'ipv6<> 1963]. Порт TCP уже используется.
Ошибка: 9692, серьезность: 16, состояние: 1.
Транспорт протокола Service Broker не может прослушивать порт 1963, так как он используется другим процессом.Для неудачных имен входа:
SQL Server 2008 и более поздних версий:
Ошибка: 18456, серьезность: 14, состояние: 11.
Сбой входа для пользователя MyDomain\TestAcc. Причина: проверка доступа к серверу на основе токена завершилась ошибкой инфраструктуры. Проверьте на наличие предыдущих ошибок.
Причина
Ошибка возникает при настройке конечной точки TCP для Service Broker с использованием того же порта, который настроен для использования экземпляра SQL Server. Список конечных точек можно получить, выполнив следующий запрос:
SELECT * FROM sys.tcp_endpoints
Примечание.
Как описано в разделе "Электронная книга" по sys.tcp_endpoints (Transact-SQL), это представление не содержит сведения о портах и протоколах, которые в настоящее время настроены для использования экземпляра SQL Server. Чтобы найти эти сведения, см. диспетчер конфигурации SQL Server.
Решение
Метод 1. Удалите конечную точку, которая вызывает проблему с помощью команды DROP ENDPOINT (Transact-SQL).
Например, чтобы удалить конечную точку с именем
TestEP
, можно использовать следующую команду:DROP ENDPOINT TestEP
Метод 2. Измените конечную точку для использования другого порта с помощью команды ALTER ENDPOINT (Transact-SQL).
Например, чтобы изменить конечную точку с именем
TestEP
для использования другого порта, можно использовать следующую команду:ALTER ENDPOINT TestEP as tcp (listener_port=1980)
Дополнительная информация
Аналогичные проблемы также могут возникать с другими конечными точками TCP, такими как созданные для зеркального отображения базы данных, и сообщения об ошибках при запуске SQL Server будут изменяться соответствующим образом.