Enklast är att man arbetar med roller.
Lite abstrakt, exempelvis
Superuser
Administratör
VD
HR
Chef
Senior
Junior
Praktikant
Till varje användarklass kan man applicera olika behörigheter där Superuser har alla, Administratör har allt utom utvecklingsspecifika behörigheter, VD har allt som är relevant för denna, etc etc.
Vidare så kan man ha mer strikta roller baserade på arbetsuppgift
HR
Ekonomi
Lager
Webb
Kundhantering
Till varje användare så kopplar man en eller flera roller beroende på hur mycket användaren ska ha tillgång till. Det går att bli superdetaljerad här också där man kanske har Lager - Inköp och Lager - Kassa eller liknande. Då kan man exempelvis skilja på personer som jobbar i kassan och personer som jobbar med lagerhanteringen. Kassapersonal får inte tillgång till inköpspriset medan Inköpsanställda får det.
En separat tabell kan man även ha där man kan tilldela eller ta bort specifika behörigheter. Dessa undantag gäller oavsett vilka behörigheter en roll ger. Detta används om det är så att det är en personal som oftast behöver ytterligare befogenheter. Exempelvis en person som springer mellan lager och kassa och behöver tillgång till exempelvis inköpspris och annat.
Vad man behöver är alltså:
Användare
Behörighet
Roll
Länktabell mellan användare och roll
Länktabell mellan användare och behörighet
För att hantera detta så laddar man lämpligtvis in alla roller och behörigheter vid uppstart alternativt vid inloggning av en användare. Baserat på vad användaren får eller inte får göra/se så matchar man användarens roller och behörigheter med behörigheten som krävs för varje funktion.