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:
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 :]
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
@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)
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 :]
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)
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.
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 :]
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
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
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 :]
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)
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 :]