Jak napsal krokodilko ve svém komentáři, záleží na úrovni flexibility, kterou potřebujete.
Implementoval jsem oprávnění založená na rolích pro jednoho ze svých klientů takto:
- Uživatel (ID uživatele (PK), uživatelské jméno (jedinečné), heslo (osolené a zahašované! ), jméno, příjmení, telefon atd.')
- Role (ID role (PK), název role (jedinečný), popis role)
- Oprávnění (ID oprávnění (PK), název oprávnění (jedinečné)) – karty / obrazovky / akce jsou zde
- User To Role (ID uživatele, ID role) – PK jsou oba sloupce kombinované
- Role k oprávnění (ID role, ID oprávnění) – PK jsou oba sloupce kombinované
Mým požadavkem však bylo být maximálně flexibilní a je to systém, který se stále rozrůstá (6 let a stále více).
Myslím, že u mnoha aplikací může být uživatel ve vztahu jedna k mnoha, místo mnoho k mnoha jako v mém případě, ale nešel bych tvrdě zakódovat oprávnění nebo role na oprávnění v žádné aplikaci.
Další vysvětlení:Návrh bezpečnostní databáze na základě rolí na What the # I know?