Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'assegnazione e l'uso dei privilegi

I vari livelli dei permessi e privilegi, dalla tabella ai privilegi globali
I vari livelli dei permessi e privilegi, dalla tabella ai privilegi globali
Link copiato negli appunti

In generale i database custodiscono informazioni di natura
differente e, spesso, di carattere riservato. Il mezzo normalmente utilizzato
nei moderni RDBMS per poter garantire la riservatezza e l'accesso a tali
informazioni nonchè per evitare la loro alterazione accidentale o volontaria
consiste nel ricorso all'uso dei privilegi.
I privilegi sono speciali
diritti concessi ad uno o più utenti che implicano la facoltà di eseguire
determinati comandi o di compiere determinate azioni su specifici oggetti del
database.
MySQL mette a disposizione quattro tipologie di privilegi che si
differenziano a seconda del contesto di validita che assumono:

  1. privilegi a livello globale: riguardano tutti i database del server e vengono memorizzati nella tabella user;
  2. privilegi a livello di database: riguardano tutti gli oggetti di un database e sono memorizzati nella tabella db;
  3. privilegi a livello di tabella: sono relativi ad una tabella di un database e vengono memorizzati nella tabella tables_priv;
  4. privilegi a livello di colonna: riguardano una singola colonna di una tabella e sono memorizzati nella tabella columns_priv;

I privilegi possono essere concessi e revocati mediante i comandi
grant e revoke. Inoltre l'assegnazione o la revoca possono anche
avvenire inserendo direttamente nelle relative tabelle un record oppure
cancellando un record già esistente.
La differenza fondamentale che
intercorre tra i due tipi di comandi è che nel primo caso l'operazione produce
degli effetti immediati laddove, nel secondo caso, la produzione degli effetti è
subordinata all'esecuzione di un ulteriore comando quale mysqladmin
flush-privileges
(oppure mysqladmin reload).

Inoltre è bene ricordare che in MySQL esistono, per comodità di amministrazione, degli appositi privilegi che racchiudono in sè stessi altri privilegi come ad esempio ALL_PRIVILEGES la cui assegnazione implica il riconoscimento all'utente dei diritti di SELECT, INSERT, UPDATE, INDEX, ALTER, CREATE, DROP, DELETE e GRANT. Naturalmente, viste le insidie che si nascondono in una assegnazione così ampia di diritti, specie se combinata con l'operatore asterisco (*), è bene circoscrivere l'uso di tali privilegi ai soli casi strettamente indispensabili adottando nella maggioranza delle ipotesi il principio dei privilegi minori già ricordato.

È bene anche ricordare una altra interessante caratteristica di MySQL che, attraverso il sistema dei privilegi, consente di assegnare agli utenti i seguenti profili di utilizzo:

  • numero di interrogazioni sul database per ora;
  • numero di aggiornamenti sulle tabelle per ora;
  • numero di connessioni per ora;

Sfruttando tale meccanismo risulta possibile circoscrivere i possibili tentativi di abuso delle risorse del database server che possono anche essere sintomo di attacchi tendenti a saturare le capacità di gestione dei dati da parte del sistema (vedi attacchi di tipo DoS).

Ti consigliamo anche