Laden...

[erledigt] Remotezugriff auf SQL-Server Express 2008 R2 klappt nur intern

Erstellt von m.grauber vor 13 Jahren Letzter Beitrag vor 13 Jahren 9.705 Views
M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren
[erledigt] Remotezugriff auf SQL-Server Express 2008 R2 klappt nur intern

verwendetes Datenbanksystem: <SQL-Server 2008R2 Express>

Tausendfach wurde dieses Thema bereits diskutiert. Ich habe es aber trotzdem. X(

Der interne Zugriff (z. B. per SQL-Server-Management-Studio) funktioniert, aber der Zugriff über das Internet von einem entferntem Rechner nicht.

Externe IP des Servers: EEE.EEE.EEE.EEE
Externer Port des Servers: EP

Interne IP des Servers: III.III.III.III
Interner Port des Servers: IP (=1433 Standardport)

In der managed Firewall wurde der Port EP für Incoming geöffnet und eine Route zum Internen SQL-Server-Port IP gesetzt (für SQL-Server)

Die Windows-Firewall des Servers ist deaktiviert.

Folgendes habe ich beachtet:

Auf Server im Config Manager:

  • SQL Server und SQL Server Browser laufen beide (Integriertes Konto jeweils: Netzwerkdienst)
  • Alle Protokolle (auch TCP/IP) sind aktiviert, Standardport IP
  • Lokale Windows-Firewall ausgeschalten
  • Beim Anmelden wurde die Instanz angeben \SQLEXPRESS
  • Remotezugriff wurde in der Datenbank erlaubt
  • Authentifizierung steht auf "gemischter Modus"
  • Besitzer der DB sind gesetzt und mit Passwort versehen
  • SynAttackProtect in Registry gesetzt

Der Zugriff klappt nur über die Interne IP und dort problemlos!

Beim Versuch über die Externe IP zu gehen erhalte ich folgenden Fehler:

Es kann keine Verbindung mit 'EEE.EEE.EEE.EEE,EP\SQLExpress' hergestellt werden.

Es konnte eine Verbindung mit dem Server hergestellt werden, doch während des Anmeldevorgangs trat ein Fehler auf. (provider: TCP-Provider, error: 0 - Eine vorhandene Verbindung wurde vom Remotehost geschlossen.) (Microsoft SQL Server, Fehler: 10054)

Hilfe erhalten Sie durch Klicken auf:
>

Er sagt mir also, dass er die Verbindung bereits aufgebaut, aber aus irgendeinem Grund wieder abgebaut hat. Über die interne IP III.III.III.III klappt es scheinbar. Seltsam ist weiterhin, dass wenn ich den Standardport mit angebe, es intern auch nicht klappt: III.III.III.III,IP\SQLExpress

Was kann das sein? Ich habe überall nur die Standardantworten gefunden.

Der Server ist ein 2008R2 64bit mit SQL-Express 2008R2 64bit und der Client ist ein 32bit-Vista mit 32bit SQL-Server 2008R2 Management Console (nicht Express-Version)

Vielen Dank!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

S
18 Beiträge seit 2010
vor 13 Jahren

Hallo Michael,

die IP muss vom Port mit Doppelpunkt abgetrennt werden, nicht mit Komma:

192.168.1.1:1234

Hast du es damit schonmal versucht?

Gruß
Stefan

3.511 Beiträge seit 2005
vor 13 Jahren

@stups:
Nö, muss man nicht. Gerade beim SQL Server muss man es mit "," trennen.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Ja, das Komma ist beim SQL-Server schon richtig.

Ist es überhaupt sichergestellt, dass man auf eine Express-Edition von einem nicht im Netzwerk befindlichen Rechner über eine externe IP zugreifen darf?

In der Express-Edition ist ja der SQL-Server Agent deaktiviert und kann nicht genutzt werden. Ist der Agent für den Remotezugriff vielleicht notwendig?

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

3.511 Beiträge seit 2005
vor 13 Jahren

Ist es überhaupt sichergestellt, dass man auf eine Express-Edition von einem nicht im Netzwerk befindlichen Rechner über eine externe IP zugreifen darf?

Ja, das ist an sich kein Problem.

Ist der Agent für den Remotezugriff vielleicht notwendig?

Nein, ist er nicht.

In der englsichen MSDN findet man zu dem Fehler 10054 allerdings etwas mehr (Error message when you try to connect to an instance of SQL Server 2005: "No process is on the other end of the pipe" or "An existing connection was forcibly closed by the remote host").

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Khalid,

Danke! Ja, ich hatte bereits den eingedeutschten Artikel aufgerufen. Momentan existiert bei meinem SQL-Express scheinbar noch kein Zertifikat.

Ist das notwendig?

Hier die "deutsche" Version: http://support.microsoft.com/?kbid=919710

Da stand so ein Unsinn, daher hatte ich das bereits wieder weggeklickt:

Führen Sie an einer Eingabeaufforderung den folgenden Befehl aus:
Certutil - Informationsspeicher - V Meine - CertificateSerialNumber

Automatische Übersetzung: "- Informationsspeicher" Nein Danke!

Jetzt kommen wir schon weiter:

Der 2008er Server ist momentan nicht als Domäne, sondern als Arbeitsgruppe konfiguriert.

  • Benötigt man eine Domäne, dass der Zugriff auf den SQL-Server per Remotezugriff klappt und nicht immer sofort wieder abgebaut wird?

Unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib befindet sich ein Key "Certificate", nur der ist leer.

  • Klappt der Zugriff auf den SQL-Server per Remotezugriff nur, wenn ein Zertifikat vorhanden ist? Falls ja, wie bekomme ich dort mein Zertifikat hinein?

  • Ich habe aber gelesen, dass Microsoft es nicht empfiehlt, SQL Express auf einen Domänenserver zu installieren. Grund wurde nicht angegeben. Ich weiß nun nicht, ob das den Grund Kompabilität oder Marketing (Verkauf SQL-Server Big Edition) hat.

Vielen Dank für diese vielleicht dummen Fragen!

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

3.511 Beiträge seit 2005
vor 13 Jahren

Ob Domäne oder Peng spielt eigentlich keine Rolle. Ebenfalls benötigt man an sich auch kein Zertifikat. Man müsste schon den Server bzw. Router dazu konfigurieren, das Zertifikate genutzt werden sollen.

Der Fehler muss noch an einer anderen Stelle entstehen.

Hast du

  • einen Router zwischenhängen, der den Netzverkehr beeinflusst?
  • mal in das SQL Server Log geschaut? (Bin mir aber gerade nicht sicher, ob man das beim Express einsehen kann)
  • mal in das Windows Event Log geschaut?

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Danke Khalid,

  • einen Router zwischenhängen, der den Netzverkehr beeinflusst?
    > ja, da wird aber die externe IP mit externem Port 1433 auf die interne IP mit internem Port 1433 weitergeleitet.

  • mal in das SQL Server Log geschaut? (Bin mir aber gerade nicht sicher, ob man
    das beim Express einsehen kann)
    > ja, das gibt es auch, aber die Anmeldeversuche sind nicht sichtbar. Man sieht nur, wann der Server und die Dienste neu gestartet werden etc.

  • mal in das Windows Event Log geschaut?
    > auch dorthinein habe ich geschaut und die Anmeldeversuche sind ebenfalls nicht sichtbar.

Aber er kommt definitiv zum SQL-Server durch, da er, wenn ich im SQL Server Management-Studio testhalber die Verbindungseinstellungen auf "Verbindung verschlüsseln" ändere, sofort die korrekte Fehlermeldung kommt:

Die Instanz von SQL Server, mit der Sie sich verbinden möchten, unterstützt keine Verschlüsselung. (Microsoft SQL Server, Fehler: 20)

Er erkennt also, das dies nicht möglich ist.

D. h. der SQL-Server trennt wahrscheinlich selbst die Verbindung wieder. Nur warum? Die Trennung (+ Fehlermeldung*) passiert immer sehr schnell (<1 Sek.)

Fehlermeldung: *
Es konnte eine Verbindung mit dem Server hergestellt werden, doch während des Anmeldevorgangs trat ein Fehler auf. (provider: TCP-Provider, error: 0 - Eine vorhandene Verbindung wurde vom Remotehost geschlossen.) (Microsoft SQL Server, Fehler: 10054)

Wie gesagt, über die Interne IP klappt es - jedoch auch nur, wenn der Port nicht angegeben ist.

Ich bin wirklich ratlos 🙁

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

3.511 Beiträge seit 2005
vor 13 Jahren

Fällt mir momentan auch nichts weiter zu ein. Ich würde dir empfehlen das Problem noch mal in den SQL Server Forum von Microsoft zu posten.

Achso: Wenn du das machst, sei bitte so nett und poste den Link zur Diskussion hier hin.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Khalid,

ich habe nun den SQL-Server Express nochmals komplett deinstalliert, erneut installiert und schau her: Alles die komplett gleichen Einstellungen und läuft auch extern!!!

Ich bin momentan wirklich etwas durcheinander und hoffe, dass mir das nicht bei Kunden passiert.

Vielen Dank nochmals für Deine Hilfe! 👍

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]