Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: [MySQL] Datenbankstruktur

  Alt 8. Jul 2008, 23:48
Für eine gute User- und Rechteverwaltung brauchst du min. 6 Tabellen:
* User-Tabelle
* Rechte-Tabelle (welche Rechte gibt es überhaupt)
* Gruppen-Tabelle (Benutzergruppen)
* UserGruppen-Tabelle (welcher User ist Mitglied bei welcher Gruppe)
* Gruppenrechte-Tabelle (Welche Gruppe hat welches Recht)
* UserRechte-Tabelle (welcher User hat welches Recht)

Ein User kann Mitglied in mehreren Gruppen sein. Jede Gruppe kann 0, 1 oder mehr Rechte haben.
Der User bekommt die Summe aller Rechte aus allen Gruppen zugeteilt.
Zusätzlich kann der User auch direkt Rechte erteilt (engl. grant) oder verweigert (engl. deny) bekommen.
Wenn einen User ein Recht explizit verweigert wurde, dann kann er es auch dann nicht mehr erhalten,
wenn er es aus einer anderen Gruppe erhalten würde.

Du kannst natürlich die Gruppen ganz weglassen, aber dann wird die Sache bei vielen Usern völlig unpraktikabel.
Man kann auch User und Gruppen zu einer Tabelle zusammenfassen, was den Vorteil hat, dass Gruppen Mitglied in anderen Gruppen werden können.
Man braucht dann weniger Tabellen, aber einfacher wird's nicht.
  Mit Zitat antworten Zitat