Qual è il ruolo della gerarchia?
Una gerarchia di ruoli è un termine organizzativo più spesso utilizzato in database e sistemi di sicurezza informatica. Gli utenti possiedono ruoli crescenti che si ramificano verso l'alto come i rami di un albero. Come utenti del sistema sono promossi attraverso questi ruoli. Essi ereditano gli attributi aggiuntivi, i doveri e le variabili correlate del ruolo che adottano, senza perdere nessuno dei loro attributi dai loro precedenti ruoli. Il vantaggio è che consente un semplice standard organizzativo per la progettazione di database e autorizzazioni di sicurezza. Gli svantaggi derivano dal fatto che spesso i singoli ruoli non si confondono perfettamente l'uno nell'altro, costringendo costruzioni scomode o improprie nella progettazione del sistema.
Immagina una palla di neve che rotola in discesa. Man mano che avanza, accumula sempre più dimensioni senza perdere il suo contenuto originale. Quando raggiunge il fondo della collina o il livello superiore del database, si è espanso ben oltre le dimensioni originali. Questo è il concetto di base di una gerarchia di ruoli.
Ad esempio, considerare una gerarchia di ruoli di un database dei dipendenti. Il livello più elementare del database sarà la tabella Employees, che contiene naturalmente ogni record di ogni persona che lavora nell'azienda, in quanto sono tutti dipendenti. I dipendenti sopra potrebbero essere la tabella dei manager, che potrebbe aggiungere ulteriori attributi come gli elenchi dei dipendenti che ogni manager supervisiona. La tabella dei manager sarà naturalmente più esclusiva, tuttavia; poiché ogni manager è un dipendente, ma non tutti i dipendenti sono manager. La tabella della gerarchia dei ruoli continuerà a "insinuarsi" in una forma piramidale, eventualmente aggiungendo una tabella per direttori di filiale, dirigenti aziendali, vicepresidenti e così via.
Dal punto di vista della sicurezza, il picco della gerarchia sarebbe un amministratore di sistema senza restrizioni, che può eseguire qualsiasi modifica o cambiamento a un sistema informatico. Considerando che il livello più basso sarebbe un utente semplice, che potrebbe essere in grado di accedere a una manciata di programmi solo senza poter apportare modifiche sostanziali. In entrambi i casi - un database o una situazione di sicurezza - lo schema della gerarchia dei ruoli consente un efficace "spurgo verso l'alto", consentendo agli utenti del sistema di migrare da una posizione all'altra in un formato abbastanza lineare.
Il rovescio della medaglia a questo proviene da organizzazioni complesse, in cui gli attributi di un'entità non necessariamente confluiscono facilmente in un'altra. Si consideri un caso in cui i dipendenti vengono promossi a una posizione dirigenziale dopo aver ricoperto un ruolo di programmatori o di risorse umane. Supponiamo che le regole aziendali vietino alle persone di lavorare sia come programmatori che come lavoratori delle risorse umane. Ora, secondo la struttura della gerarchia dei ruoli, tutti nella tabella dei manager devono ereditare sia gli attributi di un programmatore che quelli di qualcuno che lavora nelle risorse umane. Ciò si traduce in uno spazio sprecato e attributi nulli all'interno del database, poiché nessun singolo manager possiede sia gli attributi di un programmatore che qualcuno nelle risorse umane.