Jika prosedur tersimpan dibuat menggunakan EXECUTE AS CALLER (yang saya yakini sebagai default), maka pemanggil harus memiliki semua izin yang diperlukan untuk melakukan apa pun yang dilakukan prosedur tersimpan selain EXECUTE pada prosedur.
Dari dokumentasi SQL Server untuk EXECUTE AS:
Perhatikan bahwa karena cara SQL Server memproses pemeriksaan izin menggunakan rantai kepemilikan, ini tidak selalu benar, dan saya menduga bahwa pemberian CONTROL pada prosedur (yang memberikan status kepemilikan kepada penerima hibah) menyebabkan pemeriksaan izin ini menjadi dilewati.
Jika Anda membuat prosedur dengan EXECUTE AS OWNER, maka Anda tidak perlu memberikan izin apa pun di luar EXECUTE pada prosedur.