Ok, berdasarkan komentar di atas dan sesuai kecurigaan saya - sepertinya Anda mencoba untuk mengeksekusi SQL dinamis dalam prosedur tersimpan Anda.
Yang perlu Anda ingat adalah bahwa ketika Anda melakukan ini tidak dieksekusi dalam konteks prosedur tersimpan - itu dieksekusi dalam sesi baru. Karena itu, fakta bahwa pernyataan itu dipanggil dalam prosedur tersimpan adalah titik diperdebatkan, dan Anda perlu memberikan izin eksplisit pada objek yang menggunakan SQL dinamis Anda.
Jika Anda tidak ingin melakukan ini, saya akan memperbaiki prosedur tersimpan Anda untuk tidak menggunakan SQL dinamis.
Tautan di bawah ini dari Microsoft akan membantu Anda dengan masalah Anda:
PRB: Konteks Keamanan Pernyataan SQL Dinamis di dalam Prosedur yang Disimpan (arsip Wayback Machine)
Perilaku ini terjadi karena permintaan eksekusi dinamis (sp_executesql atau EXECUTE) dieksekusi dalam konteks terpisah dari prosedur tersimpan utama; ini dijalankan dalam konteks keamanan pengguna yang mengeksekusi prosedur tersimpan dan tidak dalam konteks keamanan pemilik prosedur tersimpan.
Ini juga dibahas dalam artikel Microsoft Documents (lebih terkini):
Menulis Secure Dynamic SQL dalam SQL Server
Menjalankan pernyataan SQL yang dibuat secara dinamis dalam kode prosedural Anda memutus rantai kepemilikan, menyebabkan SQL Server untuk memeriksa izin pemanggil terhadap objek yang diakses oleh SQL dinamis.