Database-Verbindung Internet-»Server-»SQL-Server im LAN
Frank
- datenbank
0 Alexander_Kiel0 Tom0 Frank
Hallo Leute,
ich hätte mal eine Frage an diejenigen, die sich mit Datenbanken etwas auskennen.
Ich habe hier in meinem LAN einen NT4 Server mit IIS4 und MSSQL7. Wenn ich von meiner Workstation im LAN arbeite, findet der IIS4 über die file-DSN den SQL-Server problemlos.
Nun will ich aber das Ergebnis live über das Internet testen und richte einen Server mit NT4 und IIS4 ein, den ich per statischer IP an meine Standleitung hänge. Ich kopiere alles in das wwwroot dieses Servers, auch die file-dsn's. Dann gebe ich den Hostnamen bzw. die passende WWW-IP 195.... in meinen Webbrowser ein und freue mich dann, das auf dem Display folgender Fehler erscheint:
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80004005'
[Microsoft][ODBC SQL Server Driver][Named Pipes]Angegebener SQL Server nicht gefunden.
/sgs/incs/startdb.inc, Zeile 5
Im wwwroot des Webservers ist eine Weiterleitungsdatei auf den Webserver mit SQL im LAN (192.168.80.98), die funktioniert, wenn ich hier im LAN bin (ich lande also dort, wo ich sonst mit der direkteingabe gelandet wäre), aber in dem Verzeichnis http://hostname/SGS/ wo die in der File-DSN steht, nimm 192.168.80.98 als SQL-Server bekomm ich immer den obigen Fehler.
Wie kann ich das noch realisieren? Oder muß ich auf dem am Web hängenden Server den SQL-ler installieren?? Oder müßte ich einen SQL-Server mit einer Internet-IP versehen und darauf zeigen lassen. Wer hat da einen oder zwei Tipse parat?? Wäre sehr dankbar.
Gruß, Frank
Hi Frank,
ich habe zwar keine Ahnung von MSSQL und IIS Servern.
Ich weiß aber, dass der SQL Server auf jeden Fall eine IP haben muss, die öffentlich ist. Du kannst vom Internet aus keine privaten IP's ala (192.168....) erreichen. Es spielt dabei keine Rolle, das ja der IIS, der eine öffentliche IP hat local auf den SQL über 192.168.. zugreifen kann. Letzendlich trittst du nach der Umleitung direkt mit dem SQL in Verbindung. Eine Möglichkeit wähe da z.B ein Proxyserver auf dem IIS, der SQL weiterleiten kann, so das du nicht mehr direkt mit dem SQL sprichst. Eine andere Möglichkeit ist ein Router, der einzelne Ports seiner öffentlichen IP an REchner im LAN weiterleiten kann (Portforwarding, Masquerading). Aber, wenn du eh die Möglichkeit hast dem SQL eine öffentliche IP zu geben, dann mach das.
Sonst sollte dann bei richtiger Konfiguration nichts mehr im Wege stehen. Denke aber auch auf jeden Fall an Datensicherheit. Ich weiß nicht, ob die Daten vom SQL Server unverschlüsselt übertragen werden. Dann sollte man in dem Fall, wo der SQL Server öffentlich im internet rumsteht auch auf jeden Fall an eine Firewall denken, damit ewentuelle Angriffe nicht gleich Erfolg haben.
Viel Spass mit dieser Sache
Alexander Kiel
Hallo Frank
ich hätte mal eine Frage an diejenigen, die sich mit Datenbanken etwas auskennen.
Ich habe hier in meinem LAN einen NT4 Server mit IIS4 und MSSQL7. Wenn ich von meiner Workstation im LAN arbeite, findet der IIS4 über die file-DSN den SQL-Server problemlos.
Wieso verwendest Du eine File-DSN und nicht eine System-DSN?
Wie greifst Du über eine File-DSN auf den MS-SQL_Server zu? Ich dachte File-DSN seien ausschliesslich für ISAM- und Access-Datenbanken gedacht.
Für den Zugriff auf den SQL-Server arbeite ich ausschliesslich über eine System-DSN mit dem SQL-Treiber.
Nun will ich aber das Ergebnis live über das Internet testen und richte einen Server mit NT4 und IIS4 ein, den ich per statischer IP an meine Standleitung hänge. Ich kopiere alles in das wwwroot dieses Servers, auch die file-dsn's. Dann gebe ich den Hostnamen bzw. die passende WWW-IP 195.... in meinen Webbrowser ein und freue mich dann, das auf dem Display folgender Fehler erscheint:
Hast Du die entsprechende Datenquelle auch auf dem neuen Server eingerichtet?
Auf dem Webserver musst zwingend eine Datenquelle mit dem gleichem Namen eingerichtet sein, wie Du in Deinen ASP-Seiten verwendest.
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80004005'
[Microsoft][ODBC SQL Server Driver][Named Pipes]Angegebener SQL Server nicht gefunden.
/sgs/incs/startdb.inc, Zeile 5
Im wwwroot des Webservers ist eine Weiterleitungsdatei auf den Webserver mit SQL im LAN (192.168.80.98), die funktioniert, wenn ich hier im LAN bin (ich lande also dort, wo ich sonst mit der direkteingabe gelandet wäre), aber in dem Verzeichnis http://hostname/SGS/ wo die in der File-DSN steht, nimm 192.168.80.98 als SQL-Server bekomm ich immer den obigen Fehler.
Wie kann ich das noch realisieren? Oder muß ich auf dem am Web hängenden Server den SQL-ler installieren?? Oder müßte ich einen SQL-Server mit einer Internet-IP versehen und darauf zeigen lassen. Wer hat da einen oder zwei Tipse parat?? Wäre sehr dankbar.
Wenn der Web-Server irgenwo im Web hängt (z.B. bei Deinem ISP), dann wird der ODBC-Zugriff über das Named-Pipe-Protokoll aussserhalb des LANs vom ISP nicht funktionieren (wenn überhaupt).
Willst Du die Datenquelle auf den SQL-Server bei Dir im LAN zeigen lassen, so musst Du in der ODBC-Datenquelle auf dem Web-Server das Netzwerkprotokoll auf TCP/IP umstellen.
Dies ist unter dem Button "Clientkonfiguration" im 2. Registertab der Datenquellen-Konfiguration möglich. Wähle dazu die Netzwerkbibliothek TCP/IP aus und gebe dann die IP-Adresse des SQL-Servers ein.
Die IP-Adresse muss natürlich eine im Internet gültige Adresse sein (also nicht 192.168....). Dazu muss der Firewall die Adresse dann entsprechend auf die interne Adresse in Deinem LAN mappen. Der Port für den SQL-Zugriff ist standardmässig 1433.
Im "Server Network Utility" in der Programmgruppe zum "MS SQL 7.0 Server" kannst Du für Deinen SQL-Server das TCP/IP-Protokoll hinzufügen, falls das bei der Installation unterdrückt wurde. im selben Dialog kann man auch die Port-Nummer ändern.
Diese Lösung ist aber nur für geringe Datenvolumen zwischen Web-Applikation (auf dem IIS) und der Datenbank geeignet. Ausserdem sollten dabei auch keine hohen Sicherheitsansprüche bestehen.
Besser und sicherer ist auf jeden Fall, den SQL-Server gleich mit auf dem Web-Server zu installieren.
Grüsse
Tom
Hi, Danke für die Infos Leute...
Na da wird mir nix anderes übrig bleiben, als einen SQL-Server auf dem selben Rechner zu installieren.
File-DSNs funktionieren nicht nur für ACCESS sondern für jede ODBC-DB... sie sind blos die "nicht-im-system-verankerte" Variante eine DB-Verbindung zu definieren.
Ich hab zwar auf dem SQL-WEB-Server Adminrechte, jedoch sitze ich da 500m weg und kann ihn nicht remote bedienen, deswegen kann (konnte) ich auch keine System-DSN auf dem Rechner erstellen. Also habe ich trickreich eine FileDSN auf meiner Workstation zusammengebaut und diese dann auf meinen Webserver kopiert und "mißbraucht".
Ziel war eigentlich, an den 4500 DM für noch nen SQL-Server vorbei zu kommen - wir haben schon 3 im Unternehmen, deswegen dachte ich, man könnte sich zunutze machen, das der Webserver ne LAN Anbindung hat... sch###sse war's... naja muß ich halt ne Investition durchboxen.
TCP/IP ist eigentlich laut meiner Workstation-System-DSN eingestellt,... trotzdem Danke an alle Tipgeber...
Ciao, Frank