Zitat von
mkinzler:
Das ändert aber nichts daran, dass alle Rechte aller Benutzer abgefragt werden, obwohl er nur die Rechte eines Benutzer benötigt
Nein das ist nicht richtig, denn mein Beispiel von oben war ja ein stark vereinfachter Aufbau.
Wenn ich meine komplette Struktuer hier aufzeichne, habe ich gleich doppelt so viele Tabellen.
Echte Tabellen
benutzertabelle
mandantentabelle
zugriffstabelle
datentabelle
Views:
benutzer_effektiv
mandanten_effektiv
zugriff_effektiv
daten_effektiv
...
Ich habe also für jede Tabelle (egal ob Mandant, Daten, Benutzer, Zugriff oder sonst was) eine View auf der ich jeweils nur die Daten sehe die mich betreffe und nur darauf bastelt der User rum.
Und bei den tiefer gehenden Views baue ich logischerweise schon auf den vorherigen Views auf.
Also heißt es konkret nicht
"Select d.* from datentabelle d, zugriffstabelle z WHERE d.mandant = z.mandant"
sondern
"Select d.* from datentabelle d, zugriff_effektiv z WHERE d.mandant = z.mandant"
Das war ja nur ne vereinfachte Darstellung.
...
Und zu der ständigen Aussage "Weg von Client/Server Technolige, wir ham 2009 nich 1990, mach dies, tu das".
Wie soll ich das denn bei einer PHP-Anwendung machen?
Das ist doch prinzipbedingt eine C/S Anwendung, oder sehe ich das falsch?