DCL – Data Control Language

Data Control Language
Data Control Language

DCL – Data Control Language

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;

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.

About Mauro De Filippis 2445 Articles
Laureato in Ingegneria Informatica nel 2008 presso l'Università degli Studi di Lecce con una tesi in Processi di Produzione Robotizzati dal titolo "Integrazione delle tecniche di progettazione del ciclo di lavorazione con programmazione della produzione”. Le mie attività principali sono : sviluppo di applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram (progettazione, sviluppo e test delle applicazioni ) sviluppo in ambiente .NET sviluppo Web in ambiente PHP, ASP Installazione, progettazione, utilizzo di Db MS SQL Server, Mysql, Acces , Oracle Da anni mi occupo di CMS Open Source, in particolare di Joomla e Wordpress. Mia è la Guida Wordpress 3.5, la Guida Joomla 2.5 , il Corso online Joomla! 2.5 ed il Corso online Wordpress Mi occupo anche di LMS in particolare di Moodle e Docebo. Google+ by Mauro De Filippis

Be the first to comment

Leave a Reply

L'indirizzo email non sarà pubblicato.


*