vier Internetseiten greifen auf eine Datenbank zu - wie umsetzen ?

#1
Hallo, ich muss mich erst mal entschuldigen für die vielleicht komisch gestellte frage. Ich bin völliger Neuling und möchte mal Fachleute fragen wie und womit ich folgendes am sichersten / besten umsetzen könnte. Ich möchte eine Datenbank erstellen, die wie eine Adressdatenbank aufgebaut ist mit verschiedenen Informationstiefen. Auf die sollen dann vier verschiedene Internetseiten zugreifen können mit den entsprechenden Berechtigungen die Informationen abzurufen. Gibt es für sowas Modelle oder Datenbanktemplates die man sich mal anschauen kann, um sich inspirieren zu lassen was möglich ist?

Vielen Dank vorab für kreative Informationen oder Kommentare.

Gruß

Torsten
 

olfibits

Active Member
#2
Es gäbe also eine zentrale Datenbank und vier zugreifende Webserver, die verschiedene Informationen (also Tabellenspalten) abrufen. Richtig?

Das einfachste wäre natürlich dass die einzelnen PHP-Programme jeweils die einzelnen Spalten abrufen. Der Zugriff auf alle Spalten wäre theoretisch da, praktisch werden halt nicht alle angezeigt. Liege ich mit dieser Lösungsvorstellung einigermaßen richtig oder stellst du dir etwas anderes vor?
 

asc

Well-Known Member
c-b Experte
#3
MySQL/MariaDB:
Pro Seite einen Benutzer einrichten mit dem entsprechenden Host (die IP des Servers wo die jeweilige Webseite liegt).
Die Benutzer dann zu der gewünschten Datenbank hinzufügen (Lese/Schreib-Rechte).
Das war es schon.

Wichtig ist nur, dass du den MySQL/MariaDB Daemon auf die externe IP bindest.
Also "bind-address = {Internet Adresse}" und nicht "bind-address = ::1" oder "bind-address = 127.0.0.1"

Um den Rest (Locking, parallele Zugriffe usw.) kümmert sich das DBMS.

Sollte deine Firewall noch Einwände haben musst du da noch eine Freigabe einrichten:

Code:
iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT
Hiermit wird der lokale Host (also 127.0.0.1 / ::1 / localhost) zugelassen.

Und pro externe IP:
Code:
iptables -A INPUT -p tcp --dport 3306 -s {IP des Servers} -j ACCEPT
Hiermit wird der externe Server auf dem Port 3306 zugelassen.

Und zu guter Letzt:
Code:
iptables -A INPUT -p tcp --dport 3306 -j REJECT --reject-with icmp-port-unreachable
Damit werden alle anderen Hosts die sich auf Port 3306 verbinden möchten abgewiesen.

PS: Die iptables Einstellungen solltest du noch speichern, da diese bei einem reboot sonst verloren gehen. Aber das ist ein anderes Thema.
 
Zuletzt bearbeitet:

olfibits

Active Member
#4
MySQL/MariaDB:
Pro Seite einen Benutzer einrichten mit dem entsprechenden Host (die IP des Server).
Die Benutzer dann zu der gewünschten Datenbank hinzufügen (Lese/Schreib-Rechte).
Das war es schon.

Wichtig ist nur, dass du den MySQL/MariaDB Daemon auf die externe IP bindest.
Also "Listen {Internet Adresse}" und nicht "Listen ::1"

Um den Rest (Locking, parallele Zugriffe usw.) kümmert sich das DBMS.
Ach so also war das gemeint... ok dann war mein Lösungsansatz wohl doch nicht so richtig, sorry :cool: Lasse ihn jetzt aber trotzdem mal drin, bei Bedarf kann man ihn ja entfernen.
 

BorisM

Well-Known Member
#5
Bedenkt bitte auch die Sicherheit - einfach nur die Firewall auf bestimmte IPs zu begrenzen ist zwar besser als nichts, aber IP-Adressen sind nicht fälschungssicher. Wenn man den SQL-Server auf einem anderen Gerät laufen lässt wie die Webserver muss man sich mindestens über die Themen Verschlüsselung und Authenfizierung ernsthafte Gedanken machen, und sich auch gut in die Themen einarbeiten.
 
#6
Hallo Zusammen, ich danke erst mal für die Antworten. Ich glaube ich war richtig auf dem falschen weg. Die Datensicherheit ist bei der Geschichte ja schon recht wichtig. Gibt es übrigens einen "Datenbankeditor" so das die Dateneingabe ein bisschen Komfortabler ist und ggfs. von mehreren Personen gemacht werden kann ? Ist viel Recherchearbeit, daher würde dies die Arbeit wirklich erleichtern... Vielen Dank schon mal
 

asc

Well-Known Member
c-b Experte
#7
Kommt drauf an welche Datenbank du nutzt. Gibt viele verschiedene Systeme.
Vielleicht gibst du uns ein paar mehr Informationen.
 

lano

Well-Known Member
c-b Experte
#8
MySQL und phpmyadmin würd ich jetzt mal vorschlagen.
Um sich erstmal mit irgendwas vertraut zu machen müsst das reichen :)
 

asc

Well-Known Member
c-b Experte
#9
Bedenkt bitte auch die Sicherheit - einfach nur die Firewall auf bestimmte IPs zu begrenzen ist zwar besser als nichts, aber IP-Adressen sind nicht fälschungssicher. Wenn man den SQL-Server auf einem anderen Gerät laufen lässt wie die Webserver muss man sich mindestens über die Themen Verschlüsselung und Authenfizierung ernsthafte Gedanken machen, und sich auch gut in die Themen einarbeiten.
Also MySQL/MariaDB lässt sich über TLS betreiben und die Authentifizierung übernimmt das DBMS.

Wo genau liegen deine bedenken? Also ernsthaft, ich habe selbst schon ähnliche Systeme betrieben und mich würde es wirklich interessieren was noch zu beachten wäre. Man lernt ja nie aus.

Was man natürlich beachten muss ist: Wenn einer der Webserver gekapert wird, dann wird es ernst, da alle anderen Webseiten über die Datenbank ebenfalls kompromittiert werden können.
 
#10
Ich habe meine Domains bei WEBGO.de, daher kenne ich (vom lesen) die MySQL/ MariaDB. Am liebsten hätte ich eine Maske (HTML oder so das Gerüst (Optik) die kann ich selbst erstellen) in die man die Daten (Administrativ) eingeben kann. Damit diese Sache übersichtlich ist. Mit ist nur wichtig das die Datenbank immer auch lokal gesichert werden können. Die Recherche eines Datensatzes mit allem drum und dran dauert knapp 1,5 Stunden. Bei 750 Datensätzen wäre es fatal wenn die plötzlich weg wären. Die frage ist nur wie ich die von der Maske in die Datenbank bekomme. So fit bin ich bei aller Leserei nicht geworden. Vielleicht hat jemand Lust und Zeit (natürlich bezahlt) mich dort zu unterstützen !?! Ich habe keine Vorstellungen wie viel Zeitaufwand das ist. Vielleicht kann ich mit Anweisung einiges Vorbereiten oder schon mal machen... Vielen Dank schon mal. Torsten
 
Oben