Basta non concedere a nessun utente del database (e al tuo ruolo "pubblico") l'autorizzazione INSERT sul tavolo.
Concedi a quegli utenti il permesso di eseguire il processo memorizzato INSERT:in questo modo, possono chiamare il processo memorizzato, ma non possono inserire direttamente alcun dato nella tabella sottostante.
DENY INSERT ON dbo.YourTable TO PUBLIC
GRANT EXECUTE ON dbo.InsertDataProc TO PUBLIC