I comandi di controllo della sicurezza permettono di gestire gli accessi al DB e sono:
| GRANT | Fornisce un privilegio a un utente o a un gruppo di utenti |
| REVOKE | Toglie un privilegio a uno o piu’ utenti |
I comandi di controllo della transazione permettono di gestire le modifiche operate dai comandi di Data Manipulation e sono:
| COMMIT | Rende permanenti le modifiche operate dall’inizio della transazione corrente |
| ROLLBACK | Annulla le modifiche operate dall’inizio dell’operazione o dall’ultimo savepoint e riporta i dati alle condizioni iniziali |
| SAVEPOINT | Stabilisce un punto oltre il quale e’ possibile effettuare un rollback |
| LOCK TABLE | Impedisce l’accesso ad una tabella agli altri utenti |
| SET TRANSACTION | Stabilisce determinate proprieta’ per la transazione corrente |
Grant
Assegna ruoli o privilegi di sistema a utenti.
Sintassi:
GRANT {system_priv|role} TO {user|role|PUBLIC} [WITH ADMIN OPTION]
Parametri:
system_priv: il privilegio di sistema da assegnare. Tra i piu’ importanti privilegi si ricorda CREATE ANY TABLE, DROP ANY TABLE, SELECT ANY TABLE
role: il ruolo da assegnare; un ruolo e’ un insieme di privilegi. Quelli gia’ definiti dal sistema sono CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE, IMP_FULL_DATABASE.
user: l’utente a cui e’ assegnato il privilegio
role: il ruolo a cui e’ assegnato il privilegio
PUBLIC: se indicato, significa che tutti gli utenti che hanno visibilita’ sul tablespace in esame riceveranno il privilegio indicato.
WITH ADMIN OPTION: permette all’utente specificato di poter assegnare a sua volta privilegi e ruoli ad altri utenti.
Esempi:
1.GRANT CONNECT TO pippo;
2.GRANT DBA to system;
[ad code=2 align=left]
Revoke
Toglie privilegi a utenti e ruoli. Un utente puo’ usare questo comando se e’ in possesso della clausola WITH ADMIN OPTION.
Sintassi:
REVOKE {system_priv|role} FROM {user|role|PUBLIC}
Parametri:
system_priv: il privilegio da togliere.
role: il ruolo da togliere.
user: l’utente a cui togliere il privilegio.
role: il ruolo a cui togliere il privilegio.
PUBLIC: se indicato, significa che tutti gli utenti perderanno il privilegio.
Esempio:
REVOKE DBA FROM sys;
Commit
Rende permanenti le modifiche effettuate sul DB nella transazione corrente.
Sintassi:
COMMIT
Parametri:
Nessun parametro.
Esempio:
commit;
Rollback
Usato per eliminare le modifiche effettuate sul DB nella sessione corrente o dall’ultimo savepoint. Viene cosi’ ripristinata la condizione precedente.
Sintassi:
ROLLBACK [TO SAVEPOINT savepoint]
Parametri:
savepoint: il nome del savepoint a partire dal quale si vogliono eliminare le modifiche effettuate.
Esempio:
1.ROLLBACK;
2.ROLLBACK TO SAVEPOINT save_me;
Savepoint
Imposta un punto oltre il quale e’ possibile effettuare un rollback.
Sintassi:
SAVEPOINT savepoint
Parametri:
savepoint: il nome assegnato al savepoint, per renderlo identificabile al momento del rollback
Esempio:
savepoint save_work;
Lock table
Inibisce l’accesso alla tabella ad altri utenti.
Sintassi:
LOCK TABLE tabella IN lockmode MODE [NOWAIT]
Parametri:
- tabella: il nome della tabella.
- lockmode: puo’ essere uno dei seguenti
- ROW SHARE: permette l’accesso a piu’ entita’ sulla tabella, ma inibisce gli utenti dal fare a loro volta un lock per averne l’accesso esclusivo.
- ROW EXCLUSIVE: come il ROW SHARE, ma impedisce anche i lock in modo SHARE; e’ automaticamente ottenuto quando si inserisce, modifica o eliminano dei dati.
- SHARE UPDATE: sinonimo di ROW SHARE.
- SHARE: permette le interrogazioni contemporanee ma non le modifiche sulla tabella.
- EXCLUSIVE: permette solo le query sulla tabella e inibisce qualunque altra attivita’ sulla tabella.
- SHARE ROW EXCLUSIVE: permette le interrogazioni ma proibisce agli utenti le modifiche e il lock in modo SHARE.
- NOWAIT: se specificato, Oracle restituisce immediatamente il controllo all’utente nel caso in cui la tabella abbia un lock di un altro utente; se omesso, Oracle aspetta finche’ la tabella non e’ di nuovo disponibile e, poi, restituisce il controllo all’utente.
Esempio:
LOCK TABLE macchine IN EXCLUSIVE MODE NOWAIT;
Impedisce operazioni che non siano una query agli altri utenti sulla tabella MACCHINE e controlla che la tabella non sia gia’ sotto lock.
[ad code=2 align=left]
[ad code=6 align=left]
Articoli che potrebbero interessarti:
- DML – Data Manipulation Language DDL – Data Definition Language I comandi facenti parte del DDL permettono di creare, modificare...
- DDL – Data Definition Language DDL – Data Definition Language I comandi facenti parte del DDL permettono di creare, modificare...
- Comandi di Amministrazione Set transaction Usato per assegnare alla transazione corrente alcune delle seguenti caratteristiche: READ ONLY READ...
- Sintassi SQL Operatori aritmetici * moltiplicazione / divisione + addizione - sottrazione Operatori logici NOT capovolge il...
- Alcuni semplici esempi di statement SQL Creazione di una tabella create table anagrafica( numero_fax char(12)); cod_anagrafica decimal(5) NOT NULL, cognome char(18),...
- View e indici Le view e gli indici sono oggetti abbastanza diversi tra di loro; le view esistono...
- Join – Combinazione di tabelle Il vocabolo join significa unione e nel caso di SQL sta ad indicare unione tra...


