Si el procedimiento almacenado se creó usando EJECUTAR COMO LLAMADOR (que creo que es el predeterminado), entonces la persona que llama debe tener todos los permisos necesarios para hacer lo que sea que haga el procedimiento almacenado además de EJECUTAR en el procedimiento.
De la documentación de SQL Server para EJECUTAR COMO:
Tenga en cuenta que, debido a la forma en que SQL Server procesa las verificaciones de permisos mediante cadenas de propiedad, esto no siempre es estrictamente cierto, y supongo que otorgar CONTROL en el procedimiento (que confiere el estado de propiedad al beneficiario) hace que estas verificaciones de permisos sean anulado.
Si crea el procedimiento con EJECUTAR COMO PROPIETARIO, entonces no debería necesitar otorgar ningún permiso más allá de EJECUTAR en el procedimiento.