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

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
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