Kann keine Verbindung zum entfernten SQL server
Ein Kunde von mir hat mir einen server-Namen, die voll qualifiziert ist [servername].somedomain.net
zu versuchen, eine Verbindung zu Ihrer Instanz von SQL Server über VPN.
Also habe ich versucht, mit dem Benutzernamen und Kennwort, die Sie mir gab. Kein Glück. Ich kann ihn anpingen, aber keine Verbindung herstellen kann, bekomme ich die Fehlermeldung, dass der Benutzername und das Kennwort falsch ist.
Also ich log auf den eigentlichen server, stellen Sie sicher, dass Sie meine Anmeldung ist in Sicherheit und hat Rechte und es dort erscheint. Workgroup\mylogin
und es scheint, dass workgroup\
ist eigentlich das gleiche wie somedomain.net\mylogin
. Weil, wenn ich versuche, um somedomain.net\mylogin
es resorts, zu sagen, dass es schon Hinzugefügt, die workgroup\mylogin
.
Nicht sicher, was anderes zu prüfen. Ich habe mir die sysadmin-Rolle in SQL Server. Ich kann ping der server IP.
Ich sah, wie Sie sich bei mir und Sie haben meine Benutzer in SQL Server mit Windows-Auth. Gut, der Fehler den ich bekomme, ist, dass Sie nicht Vertrauen können, cross-domain, wenn Sie versuchen, zu verwenden windows-auth, wenn ich versuche zu verbinden lokal hier in meinem management studio. Ich bin verbunden tot, Ihre VPN-also was könnte das problem sein?
Sind Sie nicht verfügbar, versuchen Sie es beheben und ich bin einfach nur neugierig, was ich sonst noch versuchen könnte, um zu versuchen und lösen diese auf meinem eigenen, wenn ich kann.
InformationsquelleAutor PositiveGuy | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Grundsätzlich, wenn Sie Fehler beim herstellen einer Verbindung zu Ihrem SQL Server, könnte das Problem sein:
Schritt 1: Netzwerk-Problem
Könnten Sie in der Lage sein, um lokale Verbindung ohne ein funktionierendes Netzwerk, aber das ist ein Sonderfall. Für die remote Verbindung, ein stabiles Netzwerk erforderlich ist. Die erste Sache, Probleme zu Schießen, SQL-Verbindungsprobleme ist, um sicherzustellen, dass der Netzwerk setzen wir auf ist praktikabel und stabil. Bitte führen Sie die folgenden Befehle:
ping-a (verwenden, -4 und -6 für IPv4-und IPv6-spezifisch)
ping-a
nslookup (geben Sie Ihre lokalen und remote-Computer-name und IP-Adresse mehrmals)
Vorsichtig sein, zu sehen mismatch auf der zurückgegebenen Ergebnisse. Wenn Sie nicht in der Lage, ping auf Ihrem Zielcomputer, es hat eine hohe chance, dass entweder das Netzwerk ist defekt, oder die Ziel-Computer nicht ausgeführt wird. Es ist möglich, die Ziel-Computer ist hinter einer firewall und die firewall blockt die Pakete für ping, obwohl. Die Windows-firewall nicht blockiert ping (ECHO) Paket standardmäßig. Die Richtigkeit der DNS-Konfiguration über das Netzwerk ist wichtig, um die SQL-Verbindung. Falscher DNS-Eintrag könnte die Ursache für alle Arten von Konnektivität Problem später. Finden Sie unter diesem link zum Beispiel, "der SSPI-Kontext kann Nicht Generiert werden" Fehlermeldung, Vergiftet DNS.
Schritt 2: SQL Server-Konfigurations-Problem
Müssen Sie sicherstellen, dass die Ziel-SQL-Server ausgeführt wird, und hört auf entsprechende Protokolle. Verwenden Sie SQL Server Configuration Manager (SCM) zum aktivieren der Protokolle auf dem server-Rechner. SQL Server unterstützt Shared Memory, Named Pipes und TCP-Protokolle (und ÜBER die braucht spezielle hardware und ist sehr selten benutzt). Für remote-Verbindung, NP und/oder TCP-Protokoll muss aktiviert sein. Sobald Sie aktivierte Protokolle in SCM, bitte stellen Sie sicher, starten Sie den SQL Server.
Können Sie Sie öffnen, Fehlerprotokoll-Datei, um zu sehen, ob der server erfolgreich lauscht auf jedes Protokoll. Der Speicherort der errorlog-Datei wird in der Regel unter:
%ProgramFile%Microsoft SQL-Server/MSSQLxx.xxx/MSSQL/Melden
Wenn der Ziel-SQL-Instanz eine benannte Instanz ist, müssen Sie auch sicherstellen, dass der SQL-Browser ausgeführt wird, auf dem Zielcomputer. Wenn Sie nicht in der Lage, den Zugriff auf die remote-SQL-Server, Fragen Sie bitte Ihren admin um sicherzustellen, dass alle diese passieren.
Schritt 3: Firewall-Problem
Einer firewall auf dem SQL Server-Computer (oder irgendwo zwischen client und server) konnte block-SQL-Verbindungs-Anforderung. Eine einfache Möglichkeit zu isolieren, wenn dies ist ein firewall-Problem ist das deaktivieren der firewall für eine kurze Zeit, wenn Sie können. Langfristige Lösung ist, um die Ausnahme für SQL Server und SQL Browser.
Für NP-Protokoll, stellen Sie bitte sicher, dass die Dateifreigabe in der firewall Ausnahme Liste. Beide file-sharing-und NP SMB-Protokoll unter.
Für TCP-Protokoll, müssen Sie legen Sie die TCP-port, auf dem der SQL-Server überwacht in Ausnahme.
Für SQL-Browser, bitte setzen Sie den UDP-port 1434 in Ausnahme.
In der Zwischenzeit können Sie sqlservr.exe und sqlbrowser.exe in Ausnahme-als gut, aber dies wird nicht empfohlen. IPSec zwischen Maschinen, die wir nicht vertrauenswürdig sind, könnte auch blockieren einige Pakete. Beachten Sie, dass die firewall sollte nie ein Problem für lokale verbindungen.
Schritt 4: Client-Treiber-Problem
In diesem Stadium können Sie testen Sie Ihre Verbindung mit einigen Extras. Die tests müssen getan werden, auf der client-Maschine für sicher.
Ersten versuchen:
telnet
Sie sollten in der Lage sein, um Sie telnet, um die SQL-server-TCP-port ist TCP aktiviert ist. Ansonsten gehen Sie zurück zu überprüfen die Schritte 1-3. Verwenden Sie dann OSQL, SQLCMD, und SQL Management Studio testen, sql-verbindungen. Wenn Sie nicht über diese Werkzeuge, laden Sie bitte die SQL Express von Microsoft, und Sie können diese tools kostenlos.
OSQL (die im Lieferumfang von SQL Server 2000) verwendet MDAC.
OSQL (die im Lieferumfang von SQL Server 2005 & 2008) nutzt SNAC ODBC.
SQLCMD (im Lieferumfang von SQL Server 2005 & 2008) nutzt SNAC OLEDB.
SQL-Management-Studio (im Lieferumfang von SQL Server 2005 & 2008) nutzt SQLClient.
Möglicher Befehl verwenden:
osql -E -SYour_target_machine\Your_instance für Windows Auth
osql -Uyour_user -SYour_target_machine\Your_instance für SQL Auth
SQLCMD gilt auch hier. Darüber hinaus können Sie verwenden "-Stcp:Your_target_machine, Tcp_port" TCP "-Snp:Your_target_machine\Your_instance" für NP-und "-Slpc:Your_target_machine\Your_instance" für den Shared Memory. Sie würde wissen, wenn es nicht für alle Protokolle, oder nur für bestimmte procotols.
In diesem Stadium, Sie nicht sehen sollten Allgemeine Fehlermeldung wie Fehler 26 und 40 Fehler mehr. Wenn Sie mit NP und Sie immer noch sehen, Fehler 40 (Named Pipes-Provider: es Konnte keine Verbindung zu SQL Server), versuchen Sie bitte die folgenden Schritte aus:
a) Öffnen Sie eine Datei-Freigabe auf Ihrem server-Rechner.
b) Führen Sie "net view \your_target_machine" und "net use \your_target_machine\your_share" (Sie können versuchen Netzlaufwerk aus Windows Explorer)
Wenn Sie Fehler in b), ist es sehr wahrscheinlich, dass Sie haben, OS/Netzwerk-Konfigurations-Problem, die nicht SQL Server-spezifische. Bitte Suche im internet um dieses Problem zu beheben zuerst.
Können Sie versuchen, Verbindung mit Windows-Authentifizierung und SQL-Authentifizierung. Wenn die tests mit allen tools ist fehlgeschlagen, gibt es eine gute chance, dass die Schritte 1-3 wurden nicht korrekt gesetzt, es sei denn, das scheitern ist bei der Anmeldung im Zusammenhang, dann kann Sie unter Schritt 6.
Wenn Sie erfolgreich mit einigen der Werkzeuge, aber nicht mit anderen tools, ist es wahrscheinlich ein Treiber Problem. Sie können stellen Sie eine Frage in unserem forum und geben Sie uns die details.
Können Sie auch "\windows\system32\odbcad32.exe" (das im Lieferumfang von Windows) die Verbindung testen, indem neue DSN für verschiedene Fahrer, aber das ist für ODBC-nur.
Schritt 5: Anwendung Problem
Wenn es Ihnen gelingt, mit den Schritten 1-4, aber immer noch sehen, Fehler in Ihrer Anwendung, ist es wahrscheinlich ein Konfigurationsproblem in Ihrer Anwendung. Denken Sie über einige der möglichen Fragen hier.
a) Ist die Anwendung unter dem gleichen Konto mit dem Konto, das Sie haben tests in Schritt 4? Wenn nicht, möchten Sie vielleicht versuchen, die Prüfung in Schritt 4 unter diesem Konto oder ändern, um eine praktikable service-Konto für Ihre Bewerbung, wenn möglich.
b) Die SQL-Treiber bietet Ihre app verwenden?
c) Was ist dein connection-string? Ist der connection-string kompatibel zu Ihrem Treiber? Bitte überprüfen Sie http://www.connectionstrings.com/ für Referenz.
Schritt 6: die Authentifizierung und die Anmeldung Problem
Dies ist wahrscheinlich der schwierigste Teil für sql-Verbindungsprobleme. Es ist oft in Bezug auf die Konfiguration in Ihrem Netzwerk, Ihrem Betriebssystem und der SQL Server-Datenbank. Es gibt keine einfache Lösung für dieses, und wir müssen es lösen, von Fall zu Fall. Es gibt bereits mehrere blogs in sql_protocols sprechen über einige spezielle Fälle und Sie können Sie sehen, wenn eine von Ihnen gilt, um Ihren Fall. Abgesehen davon, Dinge im Auge zu behalten:
a) Wenn Sie SQL auth, gemischte Authentifizierung muss aktiviert sein. Überprüfen Sie diese Seite für Referenzzwecke auf http://msdn.microsoft.com/en-us/library/ms188670.aspx
b) Stellen Sie sicher, dass Ihre login-Konto über die Zugriffsberechtigung auf die Datenbank, die Sie während der login ("Initial Catalog" in OLEDB).
c) Überprüfen Sie das Ereignisprotokoll auf Ihrem system sehen, wenn es mehr Informationen
Referenz: http://blogs.msdn.com/b/sql_protocols/archive/2008/04/30/steps-to-troubleshoot-connectivity-issues.aspx
Sorry für diese wall of text, ich hoffe, dass etwas von hier aus helfen kann, Ihr Problem zu lösen!
Grüße.
InformationsquelleAutor Nicholas
Wenn Sie wollen Zugriff auf die server, die Sie benötigen werden, um ein Domänenkonto aus, dass domain-oder SQL-Authentifizierung verwenden. Ich würde empfehlen, nur mit der SQL-Authentifizierung - es ist viel mehr geradeaus - wenn Sie es erlauben.
Wenn ich mich nicht Irre der Grund
Workgroup
funktioniert ist, denn das ist der generische name für Microsoft Arbeitsgruppen für Maschinen, die nicht der Domäne beigetreten. Allerdings bin ich mir zu 99,99% sicher, dass wird nicht immer funktionieren, weil der SQL-Server kann nicht überprüfen, es mit dem Domain-Server an der Domäne.Das ist nicht unbedingt der Fall. Ich weiß nicht, was der sysadmin-Logik geht es in, aber wir haben zwei domains und Benutzer domain2\Bob_Smith kann eine Verbindung zu einem server auf der anderen domain, wenn er in SQLDB01.domain1.corp.com.
InformationsquelleAutor Mike Perrenoud