ストアド プロシージャが EXECUTE AS CALLER (これがデフォルトだと思います) を使用して作成された場合、呼び出し元は、プロシージャの EXECUTE に加えて、ストアド プロシージャが行うことを行うために必要なすべてのアクセス許可を持っている必要があります。
EXECUTE AS の SQL Server ドキュメントから:
SQL Server が所有権チェーンを使用してアクセス許可チェックを処理する方法のため、これは常に厳密に正しいとは限らないことに注意してください。プロシージャに CONTROL を付与すると (所有権ステータスが被付与者に付与されます)、これらのアクセス許可チェックがバイパスされました。
EXECUTE AS OWNER を使用してプロシージャを作成する場合、プロシージャに対する EXECUTE 以外の権限を付与する必要はありません。