# Matrice CRUD

Nelle basi di dati e business process management, la matrice CRUD associa utenti e risorse, o loro aggregazioni, di un sistema informatico indicando i relativi privilegi di accesso per le operazioni di tipo CRUD.

## Descrizione

Si tratta di una tabella a doppia entrata che riporta le risorse e gli utenti, oppure i profili utente che raccolgono più persone con gli stessi diritti di accesso.
Per ogni coppia utente/risorsa indica se c'è un privilegio di accesso e di che tipo (C, R, U, D). Se un utente accede in modalità Create, Delete o Update, chiaramente dispone di un accesso anche in modalità Read alla risorsa.
Gli utenti possono essere persone o applicazioni informatiche che accedono a una determinata risorsa. Possono essere definiti profili utente che condividono gli stessi privilegi di sistema, e collegare poi a questi profili i nomi delle singole utenze.
Anche la risorsa informatica ammette una differente granularità: può essere un singolo campo (valore numerico o un file), una directory o una vista sui dati, l'insieme delle informazioni gestite con un certo applicativo o modulo del sistema informativo aziendale.
Utente e risorsa informatica possono essere descritti con la specializzazione/generalizzazione di un numero arbitrario di entità padre-figlio, nell'ambito di uno schema Entità-relazione. Gli oggetti godono della proprietà dell'ereditarietà e quindi hanno attributi e metodi di accesso dell'oggetto padre, oltre a poterne avere di propri.
Esistono tool per l'amministrazione di sistema che permettono di gestire i privilegi di accesso (user, password e abilitazioni) mediante editor grafici. Semplicemente, per abilitare un'utenza il relativo oggetto viene collegato per trascinamento all'entità che porta il nome della risorsa da accedere.
La tavola CRUD si riferisce alle quattro funzionalità che devono essere implementate per poter considerare completa:
* un'applicazione RESTful;
* database relazionali, nella maggior parte dei casi, o a oggetti o XML;
* a livello di interfaccia utente di molte applicazioni, in particolare per il contact management e la gestione documentale.
L'equivalente di una tavola CRUD è utilizzato in presenza di database distribuiti, oppure di risorse condivise da più di un utente. Nel caso dei database, il DBMS ha il compito, fra gli altri, di gestire gli accessi.
Nel caso di una risorsa condivisa, il sistema operativo provvede alla gestione degli accessi: all'interno di una Intranet, sia nei sistemi Windows che Linux, è possibile indicare fra le proprietà di un file o di una cartella, gli utenti della rete abilitati, in una delle quattro modalità di accesso consentite.
Anche le matrici RACI può essere applicata per descrivere la relazione fra risorse umane e risorse informative, in termini di diversi livelli di privilegio: Responsible, Accountable, Consulted, Informed.
Questi livelli possono essere posti in abbinamento a quelli di una tavola CRUD: il responsabile esegue e assegna la attività (Create), la persona informata prende visione senza poter eseguire modifiche (Read), il Consulted aiuta e collabora (Update), l'Accountable è l'unico responsabile del risultato e quindi può di contro anche determinare la cancellazione dell'attività (Delete).