A Microsoft extension to the ANSI SQL language that includes procedural programming, local variables, and various support functions.
The user needs EXECUTE permission on the procedure. And CONNECT permission to the database. (That is, have to access to the database in the first place.)
This is under the assumption that the stored procedure is only performing plain DML: SELECT, INSERT, UPDATE, DELETE and MERGE. If the procedure performs actions like, say, creating tables, the user needs explicit permission to those actions.