Benutzer können möglicherweise keine Remoteverbindung mit SQL Server mithilfe des TCP/IP-Protokolls herstellen.
Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem Sie keine Remoteverbindung mit SQL Server mithilfe des TCP/IP-Protokolls herstellen können.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 2018930
Problembeschreibung
Wenn Sie Microsoft SQL Server verwenden, sehen Sie möglicherweise ein oder mehrere der folgenden Symptome:
Nur die Benutzer, die über die BERECHTIGUNG CONTROL SERVER verfügen (z. B. Mitglieder der festen Serverrolle syadmin ), können eine Verbindung über TCP/IP herstellen. Benutzer, die nicht über diese Berechtigung verfügen, können keine Remoteverbindung über das TCP/IP-Protokoll über windows- oder SQL Server-Authentifizierung herstellen.
Notiz
Sie werden feststellen, dass die erhöhten Benutzerverbindungen nur in sys.dm_exec_sessions (Transact-SQL) Dynamic Management View (DMV) angezeigt werden, aber nicht in sys.dm_exec_connections (Transact-SQL) -Ansicht.
Sowohl lokale als auch Remoteverbindungen mithilfe des Named Pipes-Protokolls sowie lokale Verbindungen mit dem freigegebenen Speicherprotokoll funktionieren weiterhin einwandfrei.
Darüber hinaus werden die folgenden Meldungen in der SQL Server-Fehlerprotokolldatei protokolliert:
Beim Starten von SQL Server:
Fehler: 26023, Schweregrad: 16, Status: 1.
Server-TCP-Anbieter konnte nicht auf ['any'ipv6<> 1963] lauschen. Der TCP-Port wird bereits verwendet.
Fehler: 9692, Schweregrad: 16, Status: 1.
Der Dienstbrokerprotokolltransport kann nicht auf Port 1963 lauschen, da er von einem anderen Prozess verwendet wird.Für fehlgeschlagene Anmeldungen:
SQL Server 2008 und höhere Versionen:
Fehler: 18456, Schweregrad: 14, Status: 11.
Fehler bei der Anmeldung für den Benutzer "MyDomain\TestAcc". Ursache: Fehler bei der Überprüfung des tokenbasierten Serverzugriffs mit einem Infrastrukturfehler. Suchen Sie nach vorherigen Fehlern.
Ursache
Der Fehler tritt auf, wenn Sie einen TCP-Endpunkt für Service Broker mit demselben Port konfigurieren, den die SQL Server-Instanz für die Verwendung konfiguriert hat. Sie können die Liste der Endpunkte abrufen, indem Sie die folgende Abfrage ausführen:
SELECT * FROM sys.tcp_endpoints
Notiz
Wie im Thema "Books Online" zu sys.tcp_endpoints (Transact-SQL) erläutert, enthält diese Ansicht keine Informationen zu den Ports und Protokollen, die derzeit für die Verwendung von SQL Server-Instanzen konfiguriert sind. Informationen hierzu finden Sie unter SQL Server-Konfigurations-Manager.
Lösung
Methode 1: Legen Sie den Endpunkt ab, der das Problem mit dem BEFEHL DROP ENDPOINT (Transact-SQL) verursacht.
Wenn Sie beispielsweise einen Endpunkt mit dem Namen
TestEP
ablegen möchten, können Sie den folgenden Befehl verwenden:DROP ENDPOINT TestEP
Methode 2: Ändern Sie den Endpunkt so, dass er einen anderen Port verwendet, indem Sie den Befehl ALTER ENDPOINT (Transact-SQL) verwenden.
Wenn Sie z. B. einen Endpunkt ändern möchten, der einen
TestEP
anderen Port verwendet, können Sie den folgenden Befehl verwenden:ALTER ENDPOINT TestEP as tcp (listener_port=1980)
Weitere Informationen
Ähnliche Probleme können auch bei anderen TCP-Endpunkten auftreten, z. B. die für die Datenbankspiegelung erstellten Endpunkte, und die Fehlermeldungen beim SQL Server-Start ändern sich entsprechend.