Gebruikers kunnen mogelijk geen externe verbinding maken met SQL Server met behulp van het TCP/IP-protocol
Dit artikel helpt u bij het oplossen van het probleem waarbij u geen externe verbinding kunt maken met SQL Server met behulp van het TCP/IP-protocol.
Originele productversie: SQL Server
Origineel KB-nummer: 2018930
Symptomen
Wanneer u Microsoft SQL Server gebruikt, ziet u mogelijk een of meer van de volgende symptomen:
Alleen de gebruikers met de machtiging CONTROL SERVER (bijvoorbeeld leden van de vaste syadmin-serverfunctie ) kunnen verbinding maken via TCP/IP. Gebruikers die niet over deze machtiging beschikken, kunnen geen externe verbinding maken via het TCP/IP-protocol met behulp van Windows of SQL Server-verificatie.
Opmerking
U ziet dat de verhoogde gebruikersverbindingen alleen worden weergegeven in sys.dm_exec_sessions (Transact-SQL) Dynamic Management View (DMV), maar niet in sys.dm_exec_connections (Transact-SQL) weergave.
Zowel lokale als externe verbindingen met het Named Pipes-protocol en lokale verbindingen die gebruikmaken van het protocol voor gedeeld geheugen blijven goed werken.
Bovendien worden de volgende berichten vastgelegd in het SQL Server Errorlog-bestand:
Bij SQL Server opstarten:
Fout: 26023, Ernst: 16, Status: 1.
Server TCP-provider kan niet luisteren op ['any'ipv6<> 1963]. De TCP-poort is al in gebruik.
Fout: 9692, Ernst: 16, Status: 1.
Het Service Broker-protocoltransport kan niet luisteren op poort 1963 omdat het wordt gebruikt door een ander proces.Voor mislukte aanmeldingen:
SQL Server 2008 en latere versies:
Fout: 18456, Ernst: 14, Status: 11.
Aanmelden is mislukt voor gebruiker 'MyDomain\TestAcc'. Reden: Op tokens gebaseerde servertoegangsvalidatie is mislukt met een infrastructuurfout. Controleer op eerdere fouten.
Oorzaak
De fout treedt op wanneer u een TCP-eindpunt voor Service Broker configureert met behulp van dezelfde poort die het SQL Server-exemplaar is geconfigureerd voor gebruik. U kunt de lijst met eindpunten verkrijgen door de volgende query uit te voeren:
SELECT * FROM sys.tcp_endpoints
Opmerking
Zoals uitgelegd in het onderwerp Boeken online over sys.tcp_endpoints (Transact-SQL), bevat deze weergave geen informatie over de poorten en protocollen die SQL Server exemplaar momenteel is geconfigureerd voor gebruik. Zie SQL Server Configuration Manager om deze informatie te vinden.
Oplossing
Methode 1: Verwijder het eindpunt dat het probleem veroorzaakt met behulp van de opdracht DROP ENDPOINT (Transact-SQL).
Als u bijvoorbeeld een eindpunt met de naam
TestEP
wilt verwijderen, kunt u de volgende opdracht gebruiken:DROP ENDPOINT TestEP
Methode 2: Wijzig het eindpunt om een andere poort te gebruiken met behulp van de opdracht ALTER ENDPOINT (Transact-SQL).
Als u bijvoorbeeld een eindpunt met de naam
TestEP
wilt wijzigen om een andere poort te gebruiken, kunt u de volgende opdracht gebruiken:ALTER ENDPOINT TestEP as tcp (listener_port=1980)
Meer informatie
Vergelijkbare problemen kunnen zich ook voordoen met andere TCP-eindpunten, zoals die zijn gemaakt voor databasespiegeling, en de foutberichten bij SQL Server opstarten worden dienovereenkomstig gewijzigd.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor