if the synonym, underlying table, and stored procedure are all in the same database then all you need is EXEC on the SP (assuming you are not using dynamic sql).
However if they are all not in the same database then the user needs explicit permissions to all the referenced remote objects whether that is a direct referernce (table reference) or indirect reference (table reference via synonym).
if the synonym, underlying table, and stored procedure are all in the same database then all you need is EXEC on the SP (assuming you are not using dynamic sql).
However if they are all not in the same database then the user needs explicit permissions to all the referenced remote objects whether that is a direct referernce (table reference) or indirect reference (table reference via synonym).