phpbar.de logo

Mailinglisten-Archive

benutzerdefinierte abfrage

benutzerdefinierte abfrage

Wolfgang Hauck wbh at euta.net
Mit Mar 26 12:47:42 CET 2003


>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