Verständnisfrage - SQL + Webserver

Zaiga

Lieutenant
Registriert
März 2011
Beiträge
932
Hallo zusammen,

wenn ich ein SQL Server auf einem Server laufen habe.
So läuft der SQL Server auf dem Windows Server local? (oder wie kann man sich das am besten vorstellen?)
Wenn ich nun zusätzlich einen Webserver installiere zb. Appache so kann ich diesen localen SQL Server der auf dem Windows Server läuft nun auch von extern erreichen?
Stimmt das was ich bisher geschrieben haben :)?

Wenn ja, dann muss es doch bestimmt strikte Sicherheitsbestimmungen geben wie man solche Konstrukte absichert? Weil die Datenbank dann eben durch das Internet erreichbar wird?

Vielen Dank!

Ich lese mich grad in das Thema ein und habe hier eben noch ein paar Verständnisfragen.
 
Warum sollte der SQL-Server aus dem Internet erreichbar sein? Du baust dir doch einen Applikations-Stack auf, oder? Und natürlich kann auch alles auf einer Kiste laufen.
 
Maßgeblich ist, wie der Server mit dem Internet verbunden ist. Ist er hinter einem NAT (Router), dann hängt es vom Router ab, was überhaupt auf dem Server erreichbar ist.

Dann hängt es noch von der Konfiguration des Servers ab, ob er Anfragen von extern überhaupt erlaubt, und und und...
 
Das ist alles Konfigurationssache. Wenn der Webserver auf derselben Kiste läuft wie der Datenbankserver, dann empfiehlt es sich natürlich, zweiteren nur lokal erreichbar zu machen, indem man ihn nur an den localhost bindet.

Ist der Datenbankserver separat, denn empfiehlt es sich, ihn per Firewall nur für berechtigte Systeme erreichbar zu machen.
 
du redest wirr ;)

nee, mal ganz im Ernst. Du würfelst da ganz viele Dinge fürchterlich durcheinander.
Klar spricht man bei physikalischen Maschinen von Servern, aber es gibt auch "Software" Server, die ihre Dienste per API anbieten.
ein "SQL-Server" kann also je nach "Umgebung":
  • eine physikalische Maschine
  • ein Prozess auf einem Windows oder Unix "Server"
  • eine virtuelle Maschine
  • ein (oder viele) Container

davon hängt dann ab wie es weiter geht...
 
  • Gefällt mir
Reaktionen: maxpayne80 und Madman1209
Vielen Dank, für die Antworten!
"du redest wirr" -> Ja klar deswegen der Thread :)

Also wenn man eine Datenbank über eine Webapplication erreicht ist der Aufbau:
Server (physikalisch)
SQL server local
Application -> die mit dem Webserver redet?
Webserver

Verstehe ich das richtig?
Ergänzung ()

Sykehouse schrieb:
Das ist alles Konfigurationssache. Wenn der Webserver auf derselben Kiste läuft wie der Datenbankserver, dann empfiehlt es sich natürlich, zweiteren nur lokal erreichbar zu machen, indem man ihn nur an den localhost bindet.

Ist der Datenbankserver separat, denn empfiehlt es sich, ihn per Firewall nur für berechtigte Systeme erreichbar zu machen.
Danke!
Was heißt genau "indem man ihn nur an localhost bindet" ?
Ergänzung ()

tollertyp schrieb:
Maßgeblich ist, wie der Server mit dem Internet verbunden ist. Ist er hinter einem NAT (Router), dann hängt es vom Router ab, was überhaupt auf dem Server erreichbar ist.

Dann hängt es noch von der Konfiguration des Servers ab, ob er Anfragen von extern überhaupt erlaubt, und und und...
Danke!

Das heißt wenn man jetzt zb. eine Webapplication hat die mit dem Datenbankserver verbunden ist.
Zb. ein User kann sich einloggen und in einem Kalender die Daten eintragen.

Was würden man dort dann "Freischalten" und was "Schließen" port mässig?
Oder welche Services.

Würde es gerne einfach an einem praktischen Beispiel verstehen, weil es ist immer sehr allgemein gehalten.
 
du kannst auf ganz vielen verschiedenen Wegen mit einem "SQL-Server" "reden"!
das nennt man API (Application Programming Interface)
und zwischen deiner Datenbank und dem Internet kann auch noch ein oder mehrere "Übersetzer" sitzen.

stelle dir vor, du hast eine SQL Datenbank und ein Web-Server startet ein Python Programm, das per ODBC auf die Datenbank zugreift und die Ergebnisse dem Web-Server übermittelt.
und in der Praxis hast du dann auch noch einen reverse proxy usw. dazwischen...
 
  • Gefällt mir
Reaktionen: Zaiga
Zaiga schrieb:
Danke!
Was heißt genau "indem man ihn nur an localhost bindet" ?
Wichtigster Tip, wenn du Begriffe oder Formulierungen nicht verstehst, dann Nutze eine Suchmaschine.
https://www.google.com/search?q=bind+server+localhost

Und um es zu verstehen, einfach mal selber probieren einen LAMP Stack aufzusetzen:
https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress/0
Sinnvoll ist es, da nicht nur alle Befehle und Konfigurationen zu kopieren sondern bei jedem Befehl, der dir unbekannt ist, nachzuschauen was er macht und danach drüber nachzudenken WIESO das an der Stelle notwendig ist.
Hilfreich sind da die umfangreichen Dokumentationen von Apache, MySQL und PHP. Zudem die sogenannten Manpages unter allem was Unix bzw. Linux ist.

Wenn du kein RaspberryPi hast, ein überzähliger Rechner auf den du Debian aufspielst oder eine virtuelle Maschine mit Debian sind mit diesen Anleitungen kompatibel.

PS: Grundlegend ist es eine schlechte Idee Datenbankserver von Außen erreichbar zu halten. Da sollte man seine Konfiguration soweit im Griff haben, dass man das Unterbindet, solang man es nicht explizit anders will.
 
  • Gefällt mir
Reaktionen: snaxilian
Mickey Mouse schrieb:
du kannst auf ganz vielen verschiedenen Wegen mit einem "SQL-Server" "reden"!
das nennt man API (Application Programming Interface)
und zwischen deiner Datenbank und dem Internet kann auch noch ein oder mehrere "Übersetzer" sitzen.

stelle dir vor, du hast eine SQL Datenbank und ein Web-Server startet ein Python Programm, das per ODBC auf die Datenbank zugreift und die Ergebnisse dem Web-Server übermittelt.
und in der Praxis hast du dann auch noch einen reverse proxy usw. dazwischen...
Danke das macht das ganze deutlich verständlicher. Was ist eigentlich immer mit einemr "Web Server", MySql Server gemeint also wie unterscheidet es sich von einem normalen Programm das auf Windows läuft?
 
Zaiga schrieb:
Was heißt genau "indem man ihn nur an localhost bindet" ?
Localhost ist der Rechner auf dem die Software läuft, binden heisst, an welcher IP Adresse die Software auf Anfragen wartet.

Als Konsequenz von "an den localhost binden" ist ein Datenbankserver nur von Software, die auf demselben Rechner läuft, ansprechbar, nicht aber aus dem Rest des lokalen Netzwerks oder gar dem Internet.

Konkret kannst du normalerweise in der Konfiguration die "Bind Address" definieren, wobei in der Regel 127.0.0.1 localhost bedeutet und 0.0.0.0 Erreichbarkeit von überall.
 
  • Gefällt mir
Reaktionen: Zaiga
gaaaaanz einfaches Beispiel:
jedes "Programm/App", das auf Port 80 am Netzwerk Interface "lauscht und antwortet", ist ein "Web-Server"!

wer auf diesen Port zugreifen darf entscheidet die Firewall
über welche Wege man diesen Port erreicht entscheidet das Network-Routing
 
  • Gefällt mir
Reaktionen: Zaiga
Zaiga schrieb:
Was ist eigentlich immer mit einemr "Web Server", MySql Server gemeint also wie unterscheidet es sich von einem normalen Programm das auf Windows läuft?
Ein Server ist auch ein "normales Programm", stellt aber als Funktion einen über das Netzwerk erreichbaren (auch wenn es nur per localhost ist) Dienst zur Verfügung.
 
  • Gefällt mir
Reaktionen: twK und Zaiga
Sykehouse schrieb:
Ein Server ist auch ein "normales Programm", stellt aber als Funktion einen über das Netzwerk erreichbaren (auch wenn es nur per localhost ist) Dienst zur Verfügung.
Vollständigkeitshalber:
Ein Programm/Dienst der über das Netzwerk erreichbar ist -> Server.
User/Andere Dienste, die sich mit dem Server verbinden -> sind dann Clients des Servers.
 
Zaiga schrieb:
Danke das macht das ganze deutlich verständlicher. Was ist eigentlich immer mit einemr "Web Server", MySql Server gemeint also wie unterscheidet es sich von einem normalen Programm das auf Windows läuft?
https://de.wikipedia.org/wiki/Server

Mickey Mouse schrieb:
gaaaaanz einfaches Beispiel:
jedes "Programm/App", das auf Port 80 am Netzwerk Interface "lauscht und antwortet", ist ein "Web-Server"!
ziemlich falsch..
https://de.wikipedia.org/wiki/Webserver

Wer seinen SSH-Server auf Port 80 legt, hat noch keinen Webserver. Ein Apache der auf HTTP Requests auf Port 4711 antwortet würde nach allgemeinem Verständnis als Webserver durchgehen.

Mickey Mouse schrieb:
wer auf diesen Port zugreifen darf entscheidet die Firewall
Auch das ist falsch und trifft maximal für jene Fälle zu, wo es genau so umgesetzt wurde. Grundlegend hat das mehr mit der Konfiguration von Servern bzw. Diensten zu tun und an welche Interfaces, Ports und IPs man sie bindet.


Hatte ich erwähnt, dass es schlau sein könnte den Kram einfach mal selber umzusetzen und gleichzeitig die Dokumentation der genutzten Programme zu wälzen und Suchmaschinen zu benutzen?
Ergänzung ()

twK schrieb:
Ein Programm/Dienst der über das Netzwerk erreichbar ist -> Server.
User/Andere Dienste, die sich mit dem Server verbinden -> sind dann Clients des Servers.
Für Client/Server Modelle ist Netzwerkkram nicht zwingend notwendig.
 
  • Gefällt mir
Reaktionen: Web-Schecki und snaxilian
Piktogramm schrieb:
nee, du liegst völlig falsch!
wer heute anhand von LAMP argumentiert, der hat den Schuss nun wirklich noch nicht gehört.

Bitte, bitte, versuche erstmal zu verstehen worüber wir hier überhaupt reden und dann frage nach, wie wir die Nachhilfe geben können.
 
@Mickey Mouse
Für deine Aussage, dass ich falsch liege hätte ich gerne eine Begründung.
Und klar, wer weiß was er tut kann sich sehr bewusst dazu entscheiden etwas anderes als LAMP zu nutzen. Beim TE fehlen Grundlagen, die kann man an einem LAMP Stack recht gut lernen.

Worüber reden "wir" denn? Für mich wirkt so, als ob @Zaiga Grundlagen nicht versteht aber das Bedürfnis hat diese zu verstehen. Wenn auch mit etwas wenig Eigeninitiative.
Für den Fall bleibe ich dabei, dass es sinnvoll ist da einfach mal selbst einen 0815 Leitfaden durchzugehen und vollständig und Sinn verstehend nachzuvollziehen. Allemal besser, einzelne Begriffe extrem verkürzt bis Falsch im Forum "vermittelt" zu bekommen.
 
das ist jetzt wirklich schwierig, weil du natürlich auf der einen Seite Recht hast, auf der anderen aber auch wieder völlig veraltete Sprüche raushaust, die vermuten lassen, dass du absolut nicht auf dem Stand der Dinge bist...

klar kann man auch heute noch LAMP zum Lernen der absoluten Basics (auf dessen Stand du vielleicht noch bist) nehmen. In der "Praxis" hat das aber nicht mehr wirkliche Bedeutung, da wären vielleicht als Schlagwort eher "Traefik&Co." geeignet.
jaaaaa, die Grundlagen sind natürlich dieselben ABER irgendwie ist es doch alles etwas anders, halt "virtueller".

aber um es kurz zu machen, wer solche Sprüche raushaut:
Wer seinen SSH-Server auf Port 80 legt, hat noch keinen Webserver.
der zeigt eindeutig, dass er die absoluten Basics (port / protocol ) nicht verstanden hat, auf die er an anderer Stelle hier pocht.

wenn ich eine Wunsch frei hätte: warum können nicht die Leute mit gefährlichem Halbwissen einfach die Schnauze halten?
Ich weiß ja, dass sie es gut meinen und sogar selber der Meinung sind mit ihrem Unwissen zu helfen, aber leider ist eben genau das Gegenteil der Fall
 
In der Praxis gibt es alles. Von der Inselanwendung die in Cobol geschrieben ist über LAMP Stacks[1] hin zu "serverless" Konstrukten die alles hinter mehreren Abstraktionsebenen verstecken. Ich käme nicht (mehr) auf die Idee, zu behaupten, dass es irgendwas in der Praxis keine Rolle mehr spielt. Zudem der "serverless" und "Cloud" Kram genauso auf Blech läuft und im Hintergrund auch auf Software setzt die nicht so arg anders ist.

Und was ist an der Grundaussage bitte falsch, dass ein SSH-Server auf Port80 kein Webserver ist? Das ist genau der Gag bei Webservern, dass das Protokoll passen muss. Die Aussage von dir, dass Port 80 entscheidend sei eher Unsinn.

[1] Oder vergleichbaren Konstrukten
 
Hi...

Erstmal:
Mal wieder so'n oft in Foren zu beobachtendes Problem für die Auffassungsdifferenz zwischen Nerds und Noobs...
Wenn jemand so etwas schreibt​
Zaiga schrieb:
Ich lese mich grad in das Thema ein und habe hier eben noch ein paar Verständnisfragen.
sollte man ihm nicht wirklich gleich alle möglichen Fachbegrifflichkeiten (bspw. localhost, NAT, DHCP, reverse proxy, Träfik&Co.) um die Ohren hauen - und wenn, dann doch bestenfalls eine Erklärung mitliefernd oder wenigstens für die Selbstrecherche entsprechend verlinkt.
Hierzu mal ganz allgemein: Einfach jeden unbekannten "Fach"begriff eher mit Wikipedia (als Google) suchen - da gibt's für wirklich fast alles die für ein Grundverständnis hilfreichsten Erläuterungen, größtenteils auch mit referenzierenden Verlinkungen.
Und für das Grundlagenverständnis muß/sollte eine autodidaktische Einarbeitung auch nicht zwingend mit der alleraktuellsten Technik begonnen werden - das wird im geführten Lehrunterricht so auch nicht praktiziert, sondern sowas wird evtl. anfänglich in einem zusammenfassenden Überblick erwähnt und ansonsten aber eben über verschiedene Kenntnisstufen dahingeführt.
Dahingehend find' ich's auch nicht besonders passend, so Threads von unbedarften Fragestellern mit durch Fachbegrifflichkeiten geschwängerte Konversationen um des Recht haben Willens zu "kapern".

Jetzt hierzu:​
Zaiga schrieb:
[...] oder wie kann man sich das am besten vorstellen?
[...]
Wenn ja, dann muss es doch bestimmt strikte Sicherheitsbestimmungen geben wie man solche Konstrukte absichert? Weil die Datenbank dann eben durch das Internet erreichbar wird?
Erstmal sollte die Begriffsdefinition "Server" verstanden werden (siehe Wiki-Link oben) und dann "läuft" jeder Server grundsätzlich lokal - ob und wie er dann für das Internet erreichbar wird, kann/wird/sollte durch bestimmte Einstellungen festgelegt werden. Eine Form gesetzlicher Bestimmung(en) gibt's hierfür allerdings nur bzgl. den Datenschutz und somit dann Haftungsrechtlich betreffend.

M. E. sollte neben der (nie endenden) Recherche von mit der Thematik zusammenhängender Begrifflichkeiten auch das bereits vorgenannte Studium von entsprechenden Dokumentationen vorrangig behandelt werden, sowie parallel dazu für die Nachvollziehbarkeit von praktischer Interaktion verschiedener "Server"-Dienste auch durchaus eine Testumgebung in einem sog. LAMP/XAMPP-Szenario eingerichtet werden.
Danach werden dann höchst wahrscheinlich eh weiterführende Fragen auftauchen.

Btw.:
Piktogramm schrieb:
Wenn auch mit etwas wenig Eigeninitiative.
Seh ich gar nicht so - schließlich beschäftigt sich der TE doch mit der Materie, oder wer wurde als Experte in die Welt "geworfen"?​
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Zaiga
Zurück
Oben