Пользователи могут не иметь возможности удаленно подключиться к 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 запуске будут соответствующим образом изменены.