Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Linguaggio di Controllo dei Dati | Alcuni Argomenti Aggiuntivi
Tecniche Avanzate in SQL

bookLinguaggio di Controllo dei Dati

Data Control Language (DCL) è un sottoinsieme di SQL utilizzato per controllare l'accesso ai dati memorizzati in un sistema di gestione di database relazionali.
I comandi DCL si occupano principalmente di concedere o revocare privilegi su oggetti del database come tabelle, viste e schemi.

Comandi DCL

I due principali comandi DCL sono:

  1. GRANT: Questo comando viene utilizzato per concedere privilegi specifici a utenti o ruoli;

  2. REVOKE: Questo comando viene utilizzato per rimuovere privilegi specifici da utenti o ruoli a cui erano stati precedentemente concessi.

Privilegi

Oggetti

Implementazione

Per concedere alcuni privilegi su un oggetto in SQL a un determinato utente, è possibile utilizzare la seguente istruzione:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Esistono 3 tipi di ruoli nel database a cui è possibile concedere privilegi:

  • user: Un singolo utente del database;
  • role: Un ruolo del database, un gruppo nominato di privilegi che può essere assegnato agli utenti (ad esempio admin, developer, analyst);
  • PUBLIC: Una parola chiave speciale che concede i privilegi specificati a tutti gli utenti.

È possibile concedere un ruolo a un utente utilizzando la seguente istruzione:

GRANT role TO user;

Infine, è possibile revocare i privilegi precedentemente concessi utilizzando la seguente istruzione:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Esempio

Ecco alcuni esempi su come utilizzare il comando GRANT per assegnare diversi privilegi sulle tabelle bankaccounts e userlogs a diversi ruoli e utenti.

-- Create role
CREATE ROLE bank_manager;

-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;

-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';

-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;

Ora è possibile revocare alcuni dei privilegi concessi:

-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;

-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
question mark

Quale privilegio consente a un utente di leggere i dati da una tabella?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4.35

bookLinguaggio di Controllo dei Dati

Scorri per mostrare il menu

Data Control Language (DCL) è un sottoinsieme di SQL utilizzato per controllare l'accesso ai dati memorizzati in un sistema di gestione di database relazionali.
I comandi DCL si occupano principalmente di concedere o revocare privilegi su oggetti del database come tabelle, viste e schemi.

Comandi DCL

I due principali comandi DCL sono:

  1. GRANT: Questo comando viene utilizzato per concedere privilegi specifici a utenti o ruoli;

  2. REVOKE: Questo comando viene utilizzato per rimuovere privilegi specifici da utenti o ruoli a cui erano stati precedentemente concessi.

Privilegi

Oggetti

Implementazione

Per concedere alcuni privilegi su un oggetto in SQL a un determinato utente, è possibile utilizzare la seguente istruzione:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Esistono 3 tipi di ruoli nel database a cui è possibile concedere privilegi:

  • user: Un singolo utente del database;
  • role: Un ruolo del database, un gruppo nominato di privilegi che può essere assegnato agli utenti (ad esempio admin, developer, analyst);
  • PUBLIC: Una parola chiave speciale che concede i privilegi specificati a tutti gli utenti.

È possibile concedere un ruolo a un utente utilizzando la seguente istruzione:

GRANT role TO user;

Infine, è possibile revocare i privilegi precedentemente concessi utilizzando la seguente istruzione:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Esempio

Ecco alcuni esempi su come utilizzare il comando GRANT per assegnare diversi privilegi sulle tabelle bankaccounts e userlogs a diversi ruoli e utenti.

-- Create role
CREATE ROLE bank_manager;

-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;

-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';

-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;

Ora è possibile revocare alcuni dei privilegi concessi:

-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;

-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
question mark

Quale privilegio consente a un utente di leggere i dati da una tabella?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 6
some-alt