Un ruolo PostgreSQL è l'identità del database usata per autenticare un utente, un servizio o un'applicazione e per definire ciò che tale identità può fare. I ruoli possono possedere oggetti, leggere o scrivere tabelle, creare schemi, gestire altri ruoli e ereditare privilegi dai ruoli di gruppo. In pratica, i ruoli sono il nucleo del controllo degli accessi di PostgreSQL.
Questo è importante nella sicurezza informatica perché la compromissione di un database è spesso limitata o amplificata dalla progettazione dei ruoli. Un attaccante che accede a PostgreSQL con un ruolo a privilegi ridotti potrebbe vedere solo un insieme ristretto di dati, mentre un ruolo amministrativo riutilizzato o un account di servizio troppo ampio può esporre interi database. I difensori usano ruoli separati per le applicazioni, concessioni con privilegio minimo, password robuste o autenticazione con certificato e controlli regolari per ridurre il raggio d'impatto. Negli attacchi, credenziali rubate o ruoli configurati in modo errato sono un percorso comune dall'accesso iniziale al furto di dati.



