I progettisti di database che costruiscono sistemi aziendali di solito assegnano diversi set di privilegi a diversi utenti di DBMS. Possono essere granulari quanto necessario.
Tuttavia, secondo la mia esperienza, i framework web di solito utilizzano una singola connessione a un DBMS e i privilegi vengono assegnati e applicati a livello di framework, attraverso una sorta di schema di controllo degli accessi. La connessione al database utilizzata dal framework ha i privilegi completi sul database, poiché potrebbe essere necessario creare o eliminare tabelle, ad esempio quando vengono installate o rimosse le estensioni.
A volte esistono estensioni vulnerabili di un framework che possono consentire attacchi SQL Injection. Queste estensioni sono spesso sviluppate da terze parti e non dagli sviluppatori di framework.
La mia domanda è:
Qual è l'efficacia di fornire più connessioni DB con vari privilegi per diversi gruppi di utenti di un framework Web - come misura di sicurezza? Ad esempio, la connessione per un amministratore di sistema può consentire la creazione e eliminazione delle tabelle, ma la connessione per un utente pubblico può consentire solo la lettura di determinate tabelle.
Questo non sarebbe un sostituto per lo schema di controllo di accesso nel framework, ma come una misura aggiuntiva contro SQL Injection.
Questa è una buona idea, o del tutto inutile? Per favore, spiega.