Performancefrage: DB Abfragen oder Session Array

Schrödi

Mitglied
Hallo zusammen,

ich habe eine Frage bezüglich Performance.

Ich habe für ein dienstliches Projekt einen Intranetauftritt mit einem individuellen Rechtesystem erstellt. D.h., jedem User können einzeln oder über frei erstellbare Gruppen Rechte erteilt werden.

Folglich wird bei jedem einzelnen Link überprüft, ob dieser User diesen Link sehen darf. Die selbe Frage wird vor jedem Content include gestellt.

Nun mein Problem:

Ist es sinnvoller, bei der Anmeldung die kompletten Rechte zu ermitteln und in einer Session abzuspeichern und über dieses Array dann die Rechte in die Seite einfließen zu lassen, oder sollte ich vor jedem Link und Content Include eine DB Abfrage fahren?

Bemerkung: Die Rechteliste könnte umfangreich werden. Das Rechtesystem geht soweit, dass auch einzelne Berichte Modulintern individuell zugewiesen werden können.

Gruß Schrodi
 
Zuletzt bearbeitet von einem Moderator:
Auch wenn es recht umfachreich wird sollte eigentlich ein Array deutlich schneller sein als immer eine Datenbankabfrage zu machen.
Aber kannst du ja individuell für dein Projekt testen (Rendertime messen).
 
Hallo,

danke für deine Antwort.

Ich werde das System jetzt sessionbasiert erstellen. Bin noch nicht weit genug, um aussagekräftige Messungen vornehmen zu können. Werde ich machen, wenn ich das Projekt in den Piloten geht. Dan habe ich auch genug Daten zur Verfügung.

Aber ich denke auch dass du mit den Sessions Recht hast..
Punkto Sicherheit mache ich mir da nur etwas Gedanken. Ist es kein erhebliches Sicherheitsrisiko, die gesamten Rechte einer Person in der Session zu speichern?

Gruß Schrodi
 
Hi,

da du ja (vermutlich) irgendwo sowieso eine Seite hast, auf der sich der Benutzer einloggen muss, wird ja swieso die Session genutz, um den Benutzer zu identifizieren. Wenn sich also jemand die Session ID besorgen kann, dann kommt er eh ins System rein, da ist es dann egal, ob die Berechtigungen in der Session oder der Datenbank stehen. Aus Sicht der Performance kann es aber durchaus besser sein, wenn du die Zugangsberechtigungen in der Session speicherst, um SQL Abfragen einzusparen.
 
Stimmt.

Mit nem zuätzlichen IP Vergleich sollte das dann aber auch kein Problem mehr darstellen.

Danke für eure Antworten.


Gruß Schrodi
 
Zurück