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

Suggested prompts:

What is the difference between GRANT and REVOKE commands?

Can you explain what each privilege allows a user to do?

How do roles and users differ in terms of privileges?

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