Transact-SQL (T-SQL): Fondamenti e Approfondimenti

[Lezione 9] - Sicurezza in Transact-SQL

24/01/2024


In questa lezione affronteremo i seguenti argomenti:

• Principi di sicurezza nel contesto di SQL Server
• Ruoli e autorizzazioni di accesso
• Impostazione dei permessi su oggetti del database
• Monitoraggio delle attività e degli accessi



Principi di sicurezza nel contesto di SQL Server:
La sicurezza in Transact-SQL è fondamentale per garantire l'accesso appropriato e la protezione dei dati.
I principi di base includono il principio del principio del privilegio minimo, il principio dell'accesso basato sui ruoli e il principio dell'audit.
Esempio:
     -- Creazione di un utente con accesso solo alla tabella Utenti 
    CREATE USER UtenteLimitato WITHOUT LOGIN; 
    GRANT SELECT ON Utenti TO UtenteLimitato; 
Questo codice crea un utente limitato senza un accesso di login e concede solo il permesso di SELECT sulla tabella Utenti.

Ruoli e autorizzazioni di accesso:
    -- Creazione di un ruolo e assegnazione di autorizzazioni 
    CREATE ROLE RuoloAmministratore; GRANT INSERT, UPDATE, DELETE ON Utenti TO RuoloAmministratore; 
    -- Assegnazione di un utente al ruolo 
    EXEC sp_addrolemember 'RuoloAmministratore', 'NomeUtente'; 
Questo codice crea un ruolo amministratore, assegna autorizzazioni a quel ruolo e quindi assegna un utente al ruolo.

Impostazione dei permessi su oggetti del database:
    -- Concessione di autorizzazioni specifiche 
    GRANT EXECUTE ON PROCEDURE SpProteguta TO RuoloAmministratore; 
    -- Revoca di autorizzazioni 
    REVOKE SELECT ON Utenti FROM UtenteLimitato; 
Questi comandi dimostrano come concedere e revocare autorizzazioni specifiche su stored procedure e tabelle.

Monitoraggio delle attività e degli accessi:

    -- Creazione di un trigger di audit 
    CREATE TRIGGER Trig_AuditUtenti ON Utenti AFTER INSERT, UPDATE, DELETE AS 
    BEGIN 
        INSERT INTO LogAttività (Evento) VALUES ('Modifica nella tabella Utenti'); 
    END;  

Questo trigger di audit registra ogni modifica nella tabella Utenti nel LogAttività.

In questa lezione, abbiamo esplorato i principi di sicurezza in Transact-SQL, inclusi ruoli, autorizzazioni e il monitoraggio delle attività. Nelle prossime lezioni, esamineremo l'ottimizzazione delle prestazioni avanzata e approfondiremo la diagnostica e la gestione delle prestazioni.


< lezione precedente      lezione successiva >