Ако съхранената процедура е създадена с помощта на EXECUTE AS CALLER (което според мен е по подразбиране), тогава извикващият трябва да има всички необходими разрешения, за да направи каквото и да прави съхранената процедура в допълнение към EXECUTE на процедурата.
От документацията на SQL Server за EXECUTE AS:
Обърнете внимание, че поради начина, по който SQL Server обработва проверките на разрешения с помощта на вериги за собственост, това не винаги е стриктно вярно и предполагам, че предоставянето на КОНТРОЛ върху процедурата (която предоставя статус на собственост на получателя) причинява тези проверки на разрешения да бъдат прескочен.
Ако създадете процедурата с ИЗПЪЛНЕНИЕ КАТО СОБСТВЕНИК, тогава не трябва да давате никакви разрешения освен ИЗПЪЛНЕНИЕ за процедурата.