bigtbigt
Goto Top

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

Content-ID: 249553

Url: https://administrator.de/contentid/249553

Ausgedruckt am: 05.11.2024 um 08:11 Uhr

dr-manny
dr-manny 18.09.2014 aktualisiert um 15:29:43 Uhr
Goto Top
Zitat von @bigtbigt:

Hallo ,
Hi
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)
Ja
Standardmäßig werden ja bei einer Webumgebung die Zugangsdaten zum connecten in einer Config Datei im Klartext
gespeichert.
In der Regel schon
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)
Ich habe dazu jetzt nichts auf die Schnelle gefunden.
Onkel Google, dein Freund und Helfer face-wink
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 dazu
Ich hoffe ich habe mich verständlich ausgedrückt.
Denke schon

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 face-wink

Hoffe ich habe weitergeholfen
LG
dr-manny
bigtbigt
bigtbigt 19.09.2014 um 06:54:11 Uhr
Goto Top
Ich denke ich habe mich doch missverständlich ausgedrückt und meine Befürchtung besteht.

Ich denke dann muss es irgendwie programmiert werden und kompiliert. Ich hoffe ich habe jetzt die richtigen Begriffe verwendet. Also aus Quell-code z.B. eine Exe erstellen.

I.S. zusätzlicher Hardware. Wäre für diese Zwecke überdimensioniert.

Es geht um ein elektronisches Kassenbuch. Die auf Excelbasierten halten bei einer Prüfung vom Finanzamt nicht stand. Da nicht sicher vor nachträglicher Manipulation. Ich hatte die Hoffnung, dass man root aus einer Datenbank ausgrenzen könnte und die Zugangsdaten verschlüsselt in den Dateien speichern.