Laboratorio di Sistemi Informativi
Soluzioni esercizi - Gestione utenti
Esercizio 1
Usare il comando GRANT per concedere i seguenti diritti di accesso:
- l'accesso incondizionato a tutti i database per l'utente
abramo, quando si connette da localhost, senza bisogno di immettere
nessuna password;
grant all privileges on *.* to
abramo@localhost;
- l'accesso incondizionato a tutti i database per l'utente
abramo anche quando si connette da qualunque altra macchina
in rete, purchè con una password;
grant all privileges on *.* to
abramo@`%` identified by 'passwd';
- l'acesso in lettura alle sole tabelle aerei, voli e prenotazioni
all'utente eva, da qualunque macchina, senza password.
grant select on airdb.aerei to
eva@`%`;
grant select on airdb.voli to
eva@`%`;
grant select on
airdb.prenotazioni to eva@`%`;
Notare tuttavia che se nel sistema è presente l'utente
formale anonimo ``@localhost, allora eva, quando si collega da
localhost, verrà fatto corrispondere a quest'ultimo. Il
risultato è che se ``@localhost non ha diritti sulle tabelle di
airdb, neanche eva@localhost li avrà.
In tal caso, si possono fare due cose
- cancellare ``@localhost con DROP USER;
- dare una seconda sequenza di comandi GRANT simili a quelli di
prima, ma con eva@localhost come utente.
Esercizio 2
Indichiamo con x => y il fatto che all'utente reale x corrisponda
l'utente formale y:
root@localhost => root@localhost
andy@localhost => andy@localhost
george@localhost => ``@localhost
andy@www.imaginary.com => andy@`%`
randy@localhost => ``@localhost
root@www.imaginary.com => nessuno.. accesso negato