MySQL absichern vor Änderungen
Hallo ,
ich habe ein kleines Problem, und will es hier erstmal generell nachfragen ob es möglich ist.
Es geht um Datenbanken im Zusammenhang mit Geschäftsdaten und GoB (Grundsätze ordnungsmäßiger Bilanzierung/Buchhaltung)
Ich möchte Kunden eine einfache Lösung intern bei denen im Betrieb anbieten (über z.B. Xampp portable auf einen Stick etc.) ihre Geschäftsvorfälle zu erfassen und die auch beim Finanzamt standhalten.
Jetzt kommt die eigentlich Frage:
Ist es möglich die Datenbank nur für einen Nutzer freizugeben? (also einen festgelegten Nutzer vom Programmierer mit Passwort)
Standardmäßig werden ja bei einer Webumgebung die Zugangsdaten zum connecten in einer Config Datei im Klartext gespeichert.
Sicher ist es nur, wenn es unmöglich ist für einen Nutzer sich mit der Datenbank direkt zu verbinden um Änderungen durchzuführen.
Ich habe dazu jetzt nichts auf die Schnelle gefunden.
Mir soll hier auch keine eine komplette Lösung bereitstellen, sondern nur sagen ob das vorhaben generell möglich ist.
Ich hoffe ich habe mich verständlich ausgedrückt.
mfg Thorsten
ich habe ein kleines Problem, und will es hier erstmal generell nachfragen ob es möglich ist.
Es geht um Datenbanken im Zusammenhang mit Geschäftsdaten und GoB (Grundsätze ordnungsmäßiger Bilanzierung/Buchhaltung)
Ich möchte Kunden eine einfache Lösung intern bei denen im Betrieb anbieten (über z.B. Xampp portable auf einen Stick etc.) ihre Geschäftsvorfälle zu erfassen und die auch beim Finanzamt standhalten.
Jetzt kommt die eigentlich Frage:
Ist es möglich die Datenbank nur für einen Nutzer freizugeben? (also einen festgelegten Nutzer vom Programmierer mit Passwort)
Standardmäßig werden ja bei einer Webumgebung die Zugangsdaten zum connecten in einer Config Datei im Klartext gespeichert.
Sicher ist es nur, wenn es unmöglich ist für einen Nutzer sich mit der Datenbank direkt zu verbinden um Änderungen durchzuführen.
Ich habe dazu jetzt nichts auf die Schnelle gefunden.
Mir soll hier auch keine eine komplette Lösung bereitstellen, sondern nur sagen ob das vorhaben generell möglich ist.
Ich hoffe ich habe mich verständlich ausgedrückt.
mfg Thorsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 249553
Url: https://administrator.de/contentid/249553
Ausgedruckt am: 05.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
Hi
Alsoooo. Du sagst ja, dass du den Kunden intern im Betrieb diese Website zur Verfügung stellen willst, ohne dass diese direkten Zugriff auf die Datenbank haben.
Dazu empfehle ich, einen Server mit eigener Hardware aufzusetzen, auf diesem MySQL und Apache2 mit dem Modul fcgi zu installieren und PHP5 per fcgi einbinden (Anleitungen dazu findest du haufenweise im Netz, Stichwort google). Am besten dazu zur Verwaltung von MySQL PHPMyAdmin. Standardmäßig legt MySQL die Benutzer so an, dass sie nur von "localhost", also vom Server selbst (über Apache z.B. oder auf der Konsole) darauf zugreifen können (kann man beim Anlegen eines Benutzers per PHPMyAdmin auch einstellen). Dann solltest du die Firewall so konfigurieren, dass nur Port 80 (http) und ganz wichtig 22 (SSH) rein dürfen (siehe iptables). Pro Benutzer eine Datenbank, gibt ne automatisierte Möglichkeit in PHPMyAdmin, einen Benutzer und gleich eine Datenbank, die dem Benutzer gehört anzulegen. Somit kannst nur du (Admin) und der Benutzer auf die Datenbank zugreifen. In deiner Webanwendung verwendest du dann das Benutzerpasswort, um dich beim MySQL Server zu authentifizieren (steht zwar im Klartext in der Config, darauf haben die Kunden aber keinen Zugriff. Und (je nach Programmierung der Webanwendung) kannst du dann einen Login für den jewiligen Kunden erstellen mit Datenbankauthentifizierung oder du machst es ganz schlicht und einfach mit einer .htaccess-Datei.
Sollte dir keine eigene Hardware zur Verfügung stehen, lies das Ganze nochmal durch, gilt auch für bestehende Hardware. Worauf du halt achten solltest ist, dass die Kunden keinen Zugriff auf die Config-Dateien haben und dass sie die MySQL Datenbank Benutzer und Passwörter nicht kennen, sondern lediglich die Frontend PWs.
Edit:
Das Ganze mit einem USB-Stick zu machen wird wohl schwierig werden, da hier der Benutzer i.d.R. immer vollen Zugriff auf dieses Gerät hat, somit ist ein Schutz undenkbar. Und nachdem das Ganze ja ausschließlich intern laufen soll, spricht ja eig nix gegen einen zentralen Server oder? Ansonsten gibts ja auch noch die Möglichkeit von VPN
Hoffe ich habe weitergeholfen
LG
dr-manny
ich habe ein kleines Problem, und will es hier erstmal generell nachfragen ob es möglich ist.
Es geht um Datenbanken im Zusammenhang mit Geschäftsdaten und GoB (Grundsätze ordnungsmäßiger
Bilanzierung/Buchhaltung)
Ich möchte Kunden eine einfache Lösung intern bei denen im Betrieb anbieten (über z.B. Xampp portable auf einen
Stick etc.) ihre Geschäftsvorfälle zu erfassen und die auch beim Finanzamt standhalten.
Jetzt kommt die eigentlich Frage:
Ist es möglich die Datenbank nur für einen Nutzer freizugeben? (also einen festgelegten Nutzer vom Programmierer mit
Passwort)
JaEs geht um Datenbanken im Zusammenhang mit Geschäftsdaten und GoB (Grundsätze ordnungsmäßiger
Bilanzierung/Buchhaltung)
Ich möchte Kunden eine einfache Lösung intern bei denen im Betrieb anbieten (über z.B. Xampp portable auf einen
Stick etc.) ihre Geschäftsvorfälle zu erfassen und die auch beim Finanzamt standhalten.
Jetzt kommt die eigentlich Frage:
Ist es möglich die Datenbank nur für einen Nutzer freizugeben? (also einen festgelegten Nutzer vom Programmierer mit
Passwort)
Standardmäßig werden ja bei einer Webumgebung die Zugangsdaten zum connecten in einer Config Datei im Klartext
gespeichert.
In der Regel schongespeichert.
Sicher ist es nur, wenn es unmöglich ist für einen Nutzer sich mit der Datenbank direkt zu verbinden um Änderungen
durchzuführen.
Das ist normalerweise Standard bei MySQL (dass nur lokale Verbindungen zugelassen werden)durchzuführen.
Ich habe dazu jetzt nichts auf die Schnelle gefunden.
Onkel Google, dein Freund und Helfer Mir soll hier auch keine eine komplette Lösung bereitstellen, sondern nur sagen ob das vorhaben generell möglich ist.
Das macht keinen Sinn, also erläutere ich ein bisschen dazuIch hoffe ich habe mich verständlich ausgedrückt.
Denke schonAlsoooo. Du sagst ja, dass du den Kunden intern im Betrieb diese Website zur Verfügung stellen willst, ohne dass diese direkten Zugriff auf die Datenbank haben.
Dazu empfehle ich, einen Server mit eigener Hardware aufzusetzen, auf diesem MySQL und Apache2 mit dem Modul fcgi zu installieren und PHP5 per fcgi einbinden (Anleitungen dazu findest du haufenweise im Netz, Stichwort google). Am besten dazu zur Verwaltung von MySQL PHPMyAdmin. Standardmäßig legt MySQL die Benutzer so an, dass sie nur von "localhost", also vom Server selbst (über Apache z.B. oder auf der Konsole) darauf zugreifen können (kann man beim Anlegen eines Benutzers per PHPMyAdmin auch einstellen). Dann solltest du die Firewall so konfigurieren, dass nur Port 80 (http) und ganz wichtig 22 (SSH) rein dürfen (siehe iptables). Pro Benutzer eine Datenbank, gibt ne automatisierte Möglichkeit in PHPMyAdmin, einen Benutzer und gleich eine Datenbank, die dem Benutzer gehört anzulegen. Somit kannst nur du (Admin) und der Benutzer auf die Datenbank zugreifen. In deiner Webanwendung verwendest du dann das Benutzerpasswort, um dich beim MySQL Server zu authentifizieren (steht zwar im Klartext in der Config, darauf haben die Kunden aber keinen Zugriff. Und (je nach Programmierung der Webanwendung) kannst du dann einen Login für den jewiligen Kunden erstellen mit Datenbankauthentifizierung oder du machst es ganz schlicht und einfach mit einer .htaccess-Datei.
Sollte dir keine eigene Hardware zur Verfügung stehen, lies das Ganze nochmal durch, gilt auch für bestehende Hardware. Worauf du halt achten solltest ist, dass die Kunden keinen Zugriff auf die Config-Dateien haben und dass sie die MySQL Datenbank Benutzer und Passwörter nicht kennen, sondern lediglich die Frontend PWs.
Edit:
Das Ganze mit einem USB-Stick zu machen wird wohl schwierig werden, da hier der Benutzer i.d.R. immer vollen Zugriff auf dieses Gerät hat, somit ist ein Schutz undenkbar. Und nachdem das Ganze ja ausschließlich intern laufen soll, spricht ja eig nix gegen einen zentralen Server oder? Ansonsten gibts ja auch noch die Möglichkeit von VPN
Hoffe ich habe weitergeholfen
LG
dr-manny