O ierarhie a rolurilor este un termen organizațional utilizat cel mai des în bazele de date și sistemele de securitate informatică. Utilizatorii posedă roluri crescătoare care se ramifică în sus ca ramurile unui copac. Ca utilizatori ai sistemului sunt promovați prin aceste roluri. Ei moștenesc atributele suplimentare, îndatoririle și variabilele conexe ale rolului pe care îl adoptă, fără a-și pierde niciunul dintre atributele din rolurile lor anterioare. Avantajul acestui lucru este că permite un standard organizațional simplu pentru proiectarea bazelor de date și a permisiunilor de securitate. Dezavantajele provin din faptul că, de multe ori, rolurile individuale nu se scurg bine unele în altele, forțând construcții incomode sau necorespunzătoare în proiectarea sistemului.
Imaginează-ți un bulgăre de zăpadă care se rostogolește la vale. Pe măsură ce progresează, acumulează din ce în ce mai multă dimensiune, fără a pierde nimic din conținutul său original. În momentul în care ajunge la partea de jos a dealului sau la nivelul superior al bazei de date, s-a extins cu mult peste dimensiunea inițială. Acesta este conceptul de bază al ierarhiei de roluri.
De exemplu, luați în considerare o ierarhie de roluri a unei baze de date a angajaților. Nivelul cel mai elementar al bazei de date va fi tabelul Angajații, care conține în mod natural fiecare înregistrare a fiecărei persoane care lucrează la companie, deoarece toți sunt angajați. Deasupra Angajaților ar putea fi tabelul Manageri, care ar putea adăuga atribute suplimentare, cum ar fi liste cu angajații pe care fiecare manager îi supraveghează. Tabelul Managerilor va fi, în mod natural, mai exclusivist, totuși; deoarece fiecare manager este angajat, dar nu fiecare angajat este manager. Tabelul de ierarhie a rolurilor va continua să se „curgă” într-o formă de piramidă, adăugând eventual un tabel pentru managerii de filiale, managerii corporativi, vicepreședinții și așa mai departe.
Din punct de vedere al securității, vârful ierarhiei ar fi un administrator de sistem nerestricționat, care poate efectua orice modificare sau modificare a unui sistem informatic. În timp ce nivelul cel mai de jos ar fi un utilizator simplu, care ar putea să poată accesa doar o mână de programe fără a avea voie să facă modificări substanțiale. În ambele cazuri – fie o bază de date, fie o situație de securitate – schema de ierarhie a rolurilor permite o „sângerare în sus” eficientă, permițând utilizatorilor sistemului să migreze de la o poziție la alta într-un format destul de liniar.
Dezavantajul acestui lucru vine de la organizațiile complexe, în care atributele unei entități nu se scurg neapărat fără probleme în alta. Luați în considerare un caz în care angajații sunt promovați într-o poziție de conducere după ce au ocupat un rol fie de programatori, fie de lucrători în resurse umane. Să presupunem că regulile companiei interzic indivizilor să lucreze atât ca programator, cât și ca lucrător al resurselor umane. Acum, conform structurii ierarhice a rolurilor, toți cei din tabelul Manageri trebuie să moștenească atât atributele unui programator, cât și pe cele ale cuiva care lucrează în resurse umane. Acest lucru are ca rezultat risipa de spațiu și atribute nule în baza de date, deoarece niciun manager nu va poseda atât atributele unui programator, cât și ale unei persoane în resurse umane.