lezione 09

sicurezza e ruoli

proteggi il database con permessi minimi e auditing.

livello: intermedio durata: 35 min output: policy sicure badge: security roles

least privilege

concedi solo i permessi necessari. separa utenti di lettura da utenti di scrittura.

ruoli e grant

create role analyst;
grant select on all tables in schema public to analyst;

create user report_user password '***';
grant analyst to report_user;

permessi su schemi

grant usage on schema analytics to analyst;
revoke create on schema public from public;

row level security

limita la visibilità delle righe in base all'utente applicativo (supportato da postgres).

usa rls per multi-tenant e dati sensibili.

audit

  • logga accessi e query critiche.
  • ruota i log e archiviali.
  • monitoraggio alert per pattern anomali.

checklist finale

  • ruoli separati per lettura e scrittura.
  • permessi minimi per servizi e bot.
  • audit log attivo con retention definita.
  • review periodiche delle policy.

panoramica

In questo capitolo su sicurezza e ruoli, proteggi il database con permessi minimi e auditing. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: security roles

obiettivi

  • capire e applicare least privilege in uno scenario reale
  • capire e applicare ruoli e grant in uno scenario reale
  • capire e applicare permessi su schemi in uno scenario reale
  • capire e applicare row level security in uno scenario reale

scheda rapida

SELECT categoria, COUNT(*) AS tot
FROM prodotti
WHERE attivo = TRUE
GROUP BY categoria
ORDER BY tot DESC
LIMIT 5;

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • principio del minimo privilegio
  • separa lettura e scrittura con ruoli distinti
  • revoca accessi inutili periodicamente
  • audita permessi e ownership

tip: I permessi sono codice: versionali e tracciali.

mini progetto

Definisci ruoli per app, analyst e admin con grant mirati.

  • crea ruoli con scope chiaro
  • assegna grant su tabelle o view
  • testa accessi con utenti finti
  • documenta policy e responsabilità

output atteso: uno script o query ripetibile con risultati verificabili.

start a brief