La programmazione di database significa usare le funzionalità proprie di un database per esprimere logica, non solo per archiviare e recuperare record. In pratica, questo può includere espressioni SQL, procedure memorizzate, trigger, viste ed estensioni procedurali che consentono al codice di eseguire vicino ai dati. Per questo, un database può fare più che rispondere a query: può validare input, trasformare lo stato, applicare regole e coordinare il comportamento.
Per i team di sicurezza, questo è importante perché la logica del database fa parte della superficie di attacco. Vulnerabilità nelle query, nelle procedure memorizzate o nella logica dei trigger possono portare a SQL injection, abuso dei privilegi, danneggiamento dei dati o persistenza nascosta. I difensori si affidano anche alla programmazione di database per controlli come la sicurezza a livello di riga, l'auditing e l'applicazione del principio del minimo privilegio. La stessa flessibilità che rende SQL insolito nei progetti creativi lo rende anche importante da rivedere come vero software, con la stessa attenzione riservata al codice applicativo.


