5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 58

16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
N. B. Si fa presente che avremmo in realtà GIA’ dovuto parlare di VISTE quando abbiamo dettagliato i comandi DDL del linguaggio SQL, in quanto, come vedremo, esse non sono altro che TABELLE SPECIALI. La ragione per cui se ne parla diffusamente in questa sezione è che un loro corretto utilizzo, da sole o in aggiunta con alcuni dei privilegi di accesso che si possono assegnare ad un utente, permette l’ innalzamento dei livelli di sicurezza di un database.
a) Diritti di accesso ai dati
L’ amministratore della base di dati o il proprietario delle tabelle create, possono assegnare diversi diritti di accesso agli utenti o a gruppi di utenti che dovranno interagire con tali tabelle
I permessi di accesso possono essere assegnati, solitamente dal DBA, tramite l’ istruzione SQL GRANT la cui sintassi è la seguente:
GRANT < ElencoPrivilegi > ON < NomeDB >.< NomeTabella > TO < username >@< host > [ IDENTIFIED BY < password > ] [ WITH GRANT OPTION ];
Come vedete la sintassi sopra proposta è molto semplice ed i singoli campi significano:
• < ElencoPrivilegi >: E ' una lista di istruzioni di SQL che si vogliono permettere all ' utente( CREATE, SELECT, UPDATE, DELETE, ALTER, EXECUTE, ecc.). Se si vuole dare all ' utente permessi completi si può utilizzare la parola chiave ALL;
• < NomeDB >: E ' il nome del database che stiamo prendendo in considerazione. Per tutti gli altri database non varranno le regole che stiamo specificando. Se si vuole fare riferimento a tutti i database presenti si può utilizzare il carattere asterisco(*);
• < NomeTabella >: Inserendo il nome di una tabella, si fa riferimento solo ad essa. Per tutte le altre tabelle non varranno le regole che stiamo specificando. Se si vuole fare riferimento a tutte le tabella si può utilizzare il carattere asterisco(*);
• < username >: Specifica il nome dell ' utente già esistente al quale vogliamo assegnare nuovi diritti o privilegi ma se l’ utente non esiste, la riga relativa viene aggiunta alla tabella utenti e ' password ' sarà la sua password. Se l’ utente esiste già e la password specificata questa viene sostituita altrimenti se la password non è stata specificata, non verrà modificata;
• < host >: Specifica il / gli host da cui è ammessa la connessione. Se impostato a '%' vuol dire che l’ utente potrà connettersi al database da qualsiasi host, senza limitazione;
• < password >: Specifica la password( scritta tra apici singoli o doppi apici) associata all ' utente che stiamo creando. La password va scritta " in chiaro ". Se si desidera inserire la password in forma criptata tramite la funzione PASSWORD() di MySql, si deve far precedere la stringa criptata dalla parola PASSWORD.
Nota Bene: Ad un certo utente può essere assegnato, oltre a tutti gli altri privilegi previsti nella clausola ALL, anche quello di GRANT, che gli permetterà di assegnare ad altri utenti i propri permessi. Se ciò accade l’ utente potrà assegnare ad altri utenti tutti i propri permessi: non solo quelli ricevuti con questa istruzione, ma anche quelli che aveva già e quelli che riceverà in futuro.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 58