Co to jest hierarchia ról?
Hierarchia ról jest terminem organizacyjnym najczęściej używanym w bazach danych i systemach bezpieczeństwa komputerowego. Użytkownicy mają rosnące role, które rozgałęziają się w górę, podobnie jak gałęzie drzewa. Ponieważ użytkownicy systemu są promowani przez te role. Dziedziczą dodatkowe atrybuty, obowiązki i powiązane zmienne roli, którą przyjmują, nie tracąc żadnego ze swoich atrybutów z poprzedniej roli. Zaletą tego jest to, że pozwala na stworzenie prostego standardu organizacyjnego do projektowania baz danych i uprawnień bezpieczeństwa. Wady wynikają z faktu, że często poszczególne role nie przenikają się ze sobą, co wymusza niezręczne lub niewłaściwe konstrukcje systemu.
Wyobraź sobie śnieżkę toczącą się w dół. W miarę postępu gromadzi coraz większy rozmiar, nie tracąc żadnej oryginalnej treści. Zanim osiągnie dno wzgórza lub wyższą warstwę bazy danych, rozszerzyło się znacznie poza swój pierwotny rozmiar. Jest to podstawowa koncepcja hierarchii ról.
Rozważmy na przykład hierarchię ról bazy danych pracowników. Najbardziej podstawową warstwą bazy danych będzie tabela Pracownicy, która naturalnie zawiera każdy rekord każdej osoby pracującej w firmie, ponieważ wszyscy są pracownikami. Nad pracownikami może znajdować się tabela menedżerów, która może dodawać dodatkowe atrybuty, takie jak listy pracowników nadzorowane przez każdego menedżera. Jednak stół menedżerów będzie oczywiście bardziej ekskluzywny; jak każdy menedżer jest pracownikiem, ale nie każdy pracownik jest menedżerem. Tabela hierarchii ról będzie nadal „spływać” w kształcie piramidy, prawdopodobnie dodając tabelę dla menedżerów oddziałów, menedżerów korporacyjnych, wiceprezesów i tak dalej.
Z punktu widzenia bezpieczeństwa szczytem hierarchii byłby nieograniczony administrator systemu, który może przeprowadzać dowolne modyfikacje lub zmiany w systemie komputerowym. Natomiast najniższym poziomem byłby prosty użytkownik, który może mieć dostęp do kilku programów bez możliwości wprowadzania istotnych zmian. W obu przypadkach - albo w bazie danych, albo w sytuacji bezpieczeństwa - schemat hierarchii ról pozwala na skuteczne „upuszczenie” w górę, umożliwiając użytkownikom systemu migrację z jednej pozycji do drugiej w dość liniowym formacie.
Wadą tego są złożone organizacje, w których atrybuty jednej jednostki niekoniecznie płynnie przechodzą w drugą. Rozważ przypadek, w którym pracownicy są awansowani na stanowisko kierownicze po objęciu roli programisty lub pracownika zasobów ludzkich. Załóżmy, że reguły firmy zabraniają jednostkom pracy zarówno jako programista, jak i pracownicy zasobów ludzkich. Teraz, zgodnie ze strukturą hierarchii ról, wszyscy w tabeli Managers muszą odziedziczyć zarówno atrybuty programisty, jak i atrybuty osoby pracującej w zasobach ludzkich. Powoduje to zmarnowane miejsce i zerowe atrybuty w bazie danych, ponieważ żaden pojedynczy menedżer nie będzie posiadał zarówno atrybutów programisty, jak i kogoś w zasobach ludzkich.