I need a specific user who will be only used for reporting.
That user should have the rights of execute all reports but not alter any tables or stored procedures.
Is there any specific way to do that?
If I try my standard connection string user it says it will not have rights to execute. But also I do not give SA rights to that standard user.

Doing a little bit of searching, it looks like the user may need to be in the “sysadmin” role. The following article touches on this a bit near the end.
http://awanderingmind.com/2011/01/25/no-you-may-not-have-sysadmin-mr-developer/