Una procedura esterna è codice eseguito dal database che opera al di fuori del motore principale del database. Invece di usare solo SQL integrato o logica memorizzata, il database chiama una routine in un altro linguaggio o in una libreria collegata, talvolta accedendo a funzioni del sistema operativo o a file locali. Questo può essere utile per le prestazioni o per funzionalità specializzate, ma amplia anche la superficie di attacco perché il database non è più confinato al proprio runtime interno.
Nella sicurezza informatica, le procedure esterne sono importanti perché possono trasformare un bug del database in un impatto a livello di sistema. Se un attaccante può abusare di SQL injection, concessioni non sicure o codice memorizzato con privilegi eccessivi, potrebbe essere in grado di attivare una procedura esterna e far eseguire al servizio del database codice sull'host. I difensori riducono questo rischio disabilitando l'esecuzione esterna non utilizzata, limitando chi può crearla o eseguirla, controllando le invocazioni e monitorando attività di processo o file inattese. Il principio del minimo privilegio e le query parametrizzate aiutano a impedire agli attaccanti di raggiungere questo confine.


