Qual è la gerarchia dei ruoli?

Una gerarchia di ruoli è un termine organizzativo utilizzato più spesso nei database e nei sistemi di sicurezza dei computer. Gli utenti possiedono ruoli crescenti che si diramano verso l’alto come i rami di un albero. Poiché gli utenti del sistema vengono promossi attraverso questi ruoli. Ereditano gli attributi aggiuntivi, i doveri e le variabili correlate del ruolo che adottano, senza perdere nessuno dei loro attributi dai ruoli precedenti. 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 ruoli individuali non confluiscono nettamente l’uno nell’altro, costringendo a costruzioni scomode o improprie nella progettazione del sistema.

Immagina una palla di neve che rotola in discesa. Man mano che progredisce, accumula sempre più dimensioni senza perdere nulla del suo contenuto originale. Nel momento in cui raggiunge il fondo della collina, o il livello più alto del database, si è espanso ben oltre le sue dimensioni originali. Questo è il concetto di base di una gerarchia di ruoli.

Si consideri, ad esempio, una gerarchia di ruoli di un database dei dipendenti. Il livello più elementare del database sarà la tabella Impiegati, che naturalmente contiene ogni record di ogni persona che lavora in azienda, in quanto sono tutti dipendenti. Sopra Dipendenti potrebbe essere la tabella Responsabili, che potrebbe aggiungere attributi aggiuntivi come elenchi dei dipendenti supervisionati da ciascun manager. Il tavolo Managers sarà naturalmente più esclusivo, comunque; poiché ogni manager è un dipendente, ma non tutti i dipendenti sono manager. La tabella della gerarchia dei ruoli continuerà a “gocciolare” in una forma piramidale, eventualmente aggiungendo una tabella per direttori di filiale, direttori aziendali, vicepresidenti e così via.

Dal punto di vista della sicurezza, il vertice della gerarchia sarebbe un amministratore di sistema senza restrizioni, che può eseguire qualsiasi modifica o cambiamento a un sistema informatico. Mentre il livello più basso sarebbe un utente semplice, che potrebbe essere in grado di accedere solo a una manciata di programmi senza essere autorizzato ad apportare modifiche sostanziali. In entrambi i casi, che si tratti di un database o di una situazione di sicurezza, lo schema della gerarchia dei ruoli consente un effettivo “sanguinamento verso l’alto”, consentendo agli utenti del sistema di migrare da una posizione all’altra in un formato abbastanza lineare.

Il rovescio della medaglia deriva da organizzazioni complesse, in cui gli attributi di un’entità non necessariamente confluiscono uniformemente 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 addetti alle risorse umane. Supponiamo che le regole aziendali proibiscano agli individui di lavorare sia come programmatori che come addetti alle risorse umane. Ora, secondo la struttura della gerarchia dei ruoli, tutti nella tabella Manager devono ereditare sia gli attributi di un programmatore che quelli di qualcuno che lavora nelle risorse umane. Ciò si traduce in uno spreco di spazio e attributi nulli all’interno del database, poiché nessun singolo manager possiederà sia gli attributi di un programmatore che di qualcuno nelle risorse umane.