Mailinglisten-Archive |
>der klient möchte sich am mysql port 3306 verbinden, die middleware >ist somit also beim klient, dadurch verliere ich die kontrolle über >die benutzerrechte. >dh. er bestimmt welche datensätze er anschauen kann, >dies ist natürlich nicht gewünscht. >welche möglichkeit meinst du in mysql? Hi thomas, Nein. Die middleware muss auf dem Server laufen... Du lässt z.B. deinen mysql - Server auf Port 4000 rennen, deine Middleware auf Port 3306. Den mysql -server selber machst du für Netzwerkanfragen zu (nur localhost). Deine middleware stellt dann bei einem connect eines Clients die Verbindung via Port 4000 zur mysql - Datenbank her und emuliert die Benutzeranmeldung (hier lässt sich sogar die mysql - eigene Rechtedatenbank verwenden, kann aber auch ne eigene sein [find ich besser wegen der Übersichtlichkeit]). Der Rest ist relativ einfach. Alle Anfragen werden (modifiziert oder nicht, je nach Benutzer) an den mysql - Server weitergeleitet und die Antwort an den Client zurückgeschickt. Dieser meint nun er sei mit dem mysql -server direkt verbunden... Ist dann sozusagen ein mini - mysql emulation server ;-). Logisch hat man dadurch Performanceverluste, ausserdem müssen am Server zwei Prozesse geöffnet werden. Der meiste Aufwand bei solch einem Programm ist die Benutzerverwaltung. Die emulation ist relativ einfach, da die Anfragen und Antworten nur durchgeroutet werden. Ein Beispiel: Benutzer xy hat sich angemeldet und hat die Benutzer ID 3 Der stellt jetzt die Anfrage: Select * from tabelle Die middleware macht draus: Select * from Tabelle where benutzer_id = 3 und schickt diese Anfrage an den mysql - server Das Ergebnis wird dann nur noch zurückgeschickt.... MfG Wolfgang -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive