Empfohlene Voraussetzungen und Prüfliste für die Behandlung von SQL Server Konnektivitätsproblemen
Gilt für: SQL Server
Ursprüngliche KB-Nummer: 4009936
Empfohlene Voraussetzungen
Um Konnektivitätsprobleme effektiv zu beheben, sammeln Sie die folgenden Informationen:
Der Text der Fehlermeldung und die Fehlercodes. Überprüfen Sie, ob der Fehler zeitweilig (tritt nur gelegentlich auf) oder konsistent (tritt ständig auf).
Anwendungs- und Systemereignisprotokolle von SQL Server- und Clientsystemen. Mithilfe dieser Protokolle können Sie überprüfen, ob systemweite Probleme auf Ihrem SQL Server auftreten.
Wenn die Verbindungen von einer Anwendung aus fehlschlagen, sammeln Sie die Verbindungszeichenfolgen aus der Anwendung. Diese Zeichenfolgen befinden sich in der Regel in Web.config-Dateien für ASP.NET Anwendungen.
Sammeln und überprüfen Sie SQL Server Fehlerprotokolle auf andere Fehlermeldungen und Ausnahmen.
Wenn Sie Administratorzugriff auf den SQL Server Computer haben, erfassen und überprüfen Sie die aktuellen Computereinstellungen und Dienstkonten mithilfe des folgenden Verfahrens:
Laden Sie die neueste Version von SQLCHECK herunter.
Entpacken Sie die heruntergeladene Datei in einen Ordner, z. B. C:\Temp.
Führen Sie die Eingabeaufforderung als Administrator aus, um die Daten zu sammeln und in einer Datei zu speichern. Beispiel:
SQLCHECK > C:\Temp\server01.SQLCHECK.TXT
.
Hinweis
Wenn Sie Konnektivitätsprobleme von einem Remoteclient aus behandeln oder Verbindungsserverabfragen behandeln, führen Sie das Tool SQLCHECK auf allen beteiligten Systemen aus.
Schnelle Checkliste zur Behandlung von Konnektivitätsproblemen
Hinweis
In den folgenden Abschnitten können Sie schnell nach Konnektivitätsproblemen suchen. Ausführliche Schritte zur Problembehandlung finden Sie in den einzelnen Themen.
Option 1
Wenn Sie Zugriff auf die Im Abschnitt Empfohlene Voraussetzungen erwähnte Ausgabe des SQLCHECK-Tools haben und Informationen in verschiedenen Abschnitten der Ausgabedatei (Computer, Clientsicherheit und SQL Server) überprüfen, verwenden Sie die Informationen, um die Probleme zu beheben, die zu Ihrem Problem beitragen. Sehen Sie sich die folgenden Beispiele an:
Abschnitt in der Datei | Text, nach dem gesucht werden soll | Mögliche Aktion | Kann bei der Problembehandlung helfen (Beispiele) |
---|---|---|---|
Computerinformationen | Warnung: Der Netzwerktreiber ist möglicherweise veraltet. | Überprüfen Sie online nach neuen Treibern. | Verschiedene Konnektivitätsfehler |
Clientsicherheits- und Treiberinformationen | Diffie-Hellman Verschlüsselungssammlungen sind aktiviert. Mögliches Risiko zeitweiliger TLS-Fehler, wenn sich die Algorithmusversion zwischen Clients und Servern unterscheidet | Wenn zeitweilige Konnektivitätsprobleme auftreten, finden Sie weitere Informationen unter Verwendung von Erzwungenem Schließen von TLS-Verbindungsfehlern bei Anwendungen beim Herstellen einer Verbindung mit SQL Server in Windows. | Schließung einer bestehenden Verbindung wurde vom Remotehost erzwungen |
Clientsicherheits- und Treiberinformationen | SQL-Aliase | Falls vorhanden, stellen Sie sicher, dass Aliase ordnungsgemäß konfiguriert sind und auf den richtigen Server und die richtigen IP-Adressen verweisen. | Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server |
SQL Server Informationen | Dienstleistungen von Interesse | Wenn Ihr SQL-Dienst nicht gestartet wurde, starten Sie ihn. Wenn Probleme beim Herstellen einer Verbindung mit einem benannten instance auftreten, stellen Sie sicher, dass SQL Server Browserdienst gestartet wurde, oder versuchen Sie, den Browserdienst neu zu starten. | Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server |
SQL Server Informationen | Domänendienstkontoeigenschaften | Wenn Sie Verbindungsserver über Ihre SQL Server konfigurieren und der Wert Für Entf vertrauen auf false festgelegt ist, können Authentifizierungsprobleme bei Ihren Verbindungsserverabfragen auftreten. | Problembehandlung bei Fehlern bei der Anmeldung für Den Benutzer |
SQL Server Informationen | SPN ist nicht vorhanden | Überprüfen Sie diese Tabelle, um festzustellen, ob SPNs für Ihre SQL Server ordnungsgemäß konfiguriert sind, und um alle identifizierten Probleme zu beheben. | Der SSPI-Kontext kann nicht erstellt werden |
SQL Server Informationen | Details zur SQL Server-Instanz | Überprüfen Sie die Werte für TCP aktiviert, TCP-Ports usw. Überprüfen Sie, ob TCP/IP auf der Serverseite aktiviert ist und ob Ihr SQL-Standard instance an 1433 oder einem anderen Port lauscht. | Verschiedene Konnektivitätsfehler |
Option 2
Wenn Sie SQLCHECK nicht auf Ihrem SQL Server Computer ausführen können, können Sie die folgenden Punkte überprüfen, bevor Sie eine ausführliche Problembehandlung durchführen:
Stellen Sie sicher, dass SQL Server gestartet wurde und dass die folgende Meldung im SQL Server Fehlerprotokoll angezeigt wird:
SQL Server ist jetzt für Clientverbindungen bereit. Dies ist eine Informationsmeldung; Es ist keine Benutzeraktion erforderlich.
Verwenden Sie den folgenden Befehl in PowerShell, um die status von SQL Server Diensten auf dem System zu überprüfen:
Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -match "sql server*"}
Verwenden Sie den folgenden Befehl, um die Fehlerprotokolldatei nach der spezifischen Zeichenfolge "SQL Server ist jetzt bereit für Clientverbindungen. Dies ist eine Informationsnachricht; es ist keine Benutzeraktion erforderlich.“:
Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog |select-string "SQL Server is now ready for client connections."
Überprüfen Sie die grundlegende Konnektivität über die IP-Adresse, und überprüfen Sie auf Anomalien:
ping -a <SQL Server machine>, ping -a <SQL Server IP address>
. Wenn Probleme auftreten, wenden Sie sich an Ihren Netzwerkadministrator. Alternativ können Sie in PowerShell folgendes verwendenTest-NetConnection
:$servername = "DestinationServer" Test-NetConnection -ComputerName $servername
Überprüfen Sie, ob SQL Server an den entsprechenden Protokollen lauscht, indem Sie das Fehlerprotokoll überprüfen:
Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog |select-string "Server is listening on" , "ready to accept connection on" -AllMatches
Überprüfen Sie, ob Sie mithilfe einer UDL-Datei eine Verbindung mit SQL Server herstellen können. Wenn dies funktioniert, liegt möglicherweise ein Problem mit dem Verbindungszeichenfolge vor. Anweisungen zum UDL-Testverfahren finden Sie unter Testen der OLE DB-Konnektivität mit SQL Server mithilfe einer UDL-Datei. Alternativ können Sie das folgende Skript verwenden, um eine UDL-Test.udl-Datei (gespeichert im Ordner %TEMP% ) zu erstellen und zu starten:
clear $ServerName = "(local)" $UDL_String = "[oledb]`r`n; Everything after this line is an OLE DB initstring`r`nProvider=MSOLEDBSQL.1;Integrated Security=SSPI;Persist Security Info=False;User ID=`"`";Initial Catalog=`"`";Data Source=" + $ServerName + ";Initial File Name=`"`";Server SPN=`"`";Authentication=`"`";Access Token=`"`"" Set-Content -Path ($env:temp + "\UDL-Test.udl") -Value $UDL_String -Encoding Unicode #open the UDL Invoke-Expression ($env:temp + "\UDL-Test.udl")
Überprüfen Sie, ob Sie eine Verbindung mit SQL Server von anderen Clientsystemen und unterschiedlichen Benutzeranmeldungen herstellen können. Wenn Sie in der Lage sind, kann das Problem spezifisch für den Client oder die Anmeldung sein, bei dem das Problem auftritt. Überprüfen Sie die Windows-Ereignisprotokolle auf dem problematischen Client auf weitere Zeiger. Überprüfen Sie außerdem, ob Netzwerktreiber auf dem neuesten Stand sind.
Wenn Anmeldefehler auftreten, stellen Sie sicher, dass ein Anmeldename (Serverprinzipal) vorhanden ist und
CONNECT SQL
über Berechtigungen zum SQL Server verfügt. Stellen Sie außerdem sicher, dass die Standarddatenbank, die der Anmeldung zugewiesen ist, richtig ist und dass der zugeordnete Datenbankprinzipal über Berechtigungen für die Datenbank verfügtCONNECT
. Weitere Informationen zum ErteilenCONNECT
von Berechtigungen für den Datenbankprinzipal finden Sie unter GRANT-Datenbankberechtigungen. Weitere Informationen zum ErteilenCONNECT SQL
von Berechtigungen für den Serverprinzipal finden Sie unter GRANT-Serverberechtigungen. Verwenden Sie das folgende Skript, um diese Berechtigungen zu identifizieren:clear ## replace these variables with the login, user, database and server $server_principal = "CONTOSO\JaneK" $database_principal = "JaneK" $database_name = "mydb" $server_name = "myserver" Write-Host "`n******* Server Principal (login) permissions *******`n`n" sqlcmd -E -S $server_name -Q ("set nocount on; SELECT convert(varchar(32),pr.type_desc) as login_type, convert(varchar(32), pr.name) as login_name, is_disabled, convert(varchar(32), isnull (pe.state_desc, 'No permission statements')) AS state_desc, convert(varchar(32), isnull (pe.permission_name, 'No permission statements')) AS permission_name, convert(varchar(32), default_database_name) as default_db_name FROM sys.server_principals AS pr LEFT OUTER JOIN sys.server_permissions AS pe ON pr.principal_id = pe.grantee_principal_id WHERE is_fixed_role = 0 -- Remove for SQL Server 2008 and name = '" + $server_principal + "'") Write-Host "`n******* Database Principal (user) permissions *******`n`n" sqlcmd -E -S $server_name -d $database_name -Q ("set nocount on; SELECT convert(varchar(32),pr.type_desc) as user_type, convert(varchar(32),pr.name) as user_name, convert(varchar(32), isnull (pe.state_desc, 'No permission statements')) AS state_desc, convert(varchar(32), isnull (pe.permission_name, 'No permission statements')) AS permission_name FROM sys.database_principals AS pr LEFT OUTER JOIN sys.database_permissions AS pe ON pr.principal_id = pe.grantee_principal_id WHERE pr.is_fixed_role = 0 and name = '" + $database_principal + "'") Write-Host "`n******* Server to Database Principal mapping ********`n" sqlcmd -E -S $server_name -d $database_name -Q ("exec sp_helplogins '" + $server_principal + "'")
Wenn Sie Kerberos-bezogene Probleme beheben, können Sie die Skripts unter Ermitteln, ob ich mit SQL Server mithilfe der Kerberos-Authentifizierung ermitteln, ob Kerberos auf Ihren SQL-Servern ordnungsgemäß konfiguriert ist, verwenden.
Häufige Konnektivitätsprobleme
Wenn Sie die Voraussetzungen und die Prüfliste durchgegangen sind, sehen Sie sich häufige Konnektivitätsprobleme an , und wählen Sie die entsprechende Fehlermeldung aus, um ausführliche Schritte zur Problembehandlung zu erhalten.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für