Freigeben über


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.