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.