Sicurezza dei database (quarta parte)

Utilizzo delle viste.

Come gia’ detto in interventi precedenti le viste sono delle tabelle ‘virtuali’ che permettono di visualizzare i dati in modo differente rispetto a come sono memorizzati nel database.

Tramite una vista e’ possibile limitare i record estratti da una tabella.

Supponiamo di avere una tabella stipendi, nella quale sono memorizzati, mese per mese, gli stipendi di tutti i dipendenti di una societa’, oltre al loro nome e all’utente che utilizzano per connettersi al database:

Dipendente Mese Stipendio Utente
Mario Rossi gennaio 2001 2450000 mrossi
Mario Rossi febbraio 2001 2455000 mrossi
Mario Rossi marzo 2001 2455000 mrossi
Paolo Verdi febbraio 2001 2100000 pverdi

Come fare in modo che ogni utente veda solo i propri stipendi?

Con i privilegi e’ possibile definire quali utenti possono leggere, inserire, modificare o cancellare i record di una tavola. Ma una volta che, ad esempio, e’ stata concessa la possibilita’ ad un utente di leggere i record della tavola stipendi (GRANT select ON stipendi TO mrossi) questo e’ in grado di leggere tutti i record.

Questo scopo puo’ essere raggiunto definendo una vista che estragga solo i record relativi all’utente che la sta interrogando:

CREATE VIEW miei_stipendi

AS

SELECT Dipendente, Mese, Stipendio

FROM stipendi

WHERE Utente=user;

La funzione user restituisce lo username dell’utente che effettua la query.

Perche’ tutto funzioni e’ necessario che nessun dipendente possa accedere alla tabella stipendi mentre a tutti dovra’ essere concesso il solo privilegio di lettura della vista.

A questo punto se, ad esempio l’utente mrossi dovesse effettuare l’interrogazione:

SELECT * FROM miei_stipendi;

Il risultato sarebbe:

Dipendente Mese Stipendio
Mario Rossi gennaio 2001 2450000
Mario Rossi febbraio 2001 2455000
Mario Rossi marzo 2001 2455000

Quindi la vista funge da filtro fra l’utente e la tabella.

Peeplo Engine

Un motore di ricerca nuovo, ricco e approfondito.

Inizia ora le tue ricerche su Peeplo.

Le categorie della guida