L'utente con restrizioni per uso da programma fa parte delle best practices di SQL Server e comunque di chiunque amministri ed usi un DB, separare sempre l'utente con possibilità di modificare le strutture dall'utente che utilizza il database.
Mai dare agli utenti alcun permesso oltre quelli strettamente necessari.
Se poi mi chiedi perché fare una doppia connessione, è opportuno farlo soprattutto se fai accedere gli utenti con una mappatura via trusted connection, perché in questo modo, gli utenti avendo i permessi diretti potrebbero agganciarsi a SQL Server usando qualsiasi driver ODBC (vedi excel, access o simili) e pasticciare sui dati.
Per risolvere il problema che vi siete trovati voi io procederei in questo modo:
Creerei sul DB un utente di tipo SQL (con username + password) a cui darei tutti i permessi di lettura e scrittura ed esecuzione, poi farei in modo che il software utilizzasse questo account per la connessione al database eliminando la connessione diretta degli utenti e risolvendo alla radice il problema.
Se necessario, potete ottenerlo modificando la parte di accesso del programma in modo tale che il programma setti la connessione diretta dopo aver fatto l'accesso utente ed eventuale controllo credenziali dello stesso.
saluti
Sabrina