यदि संग्रहीत कार्यविधि EXECUTE AS CALLER (जो मुझे लगता है कि डिफ़ॉल्ट है) का उपयोग करके बनाई गई थी, तो कॉल करने वाले के पास प्रक्रिया पर EXECUTE के अलावा संग्रहीत प्रक्रिया जो कुछ भी करता है उसे करने के लिए आवश्यक सभी अनुमतियां होनी चाहिए।
EXECUTE AS के लिए SQL सर्वर दस्तावेज़ से:
ध्यान दें कि जिस तरह से SQL सर्वर स्वामित्व श्रृंखलाओं का उपयोग करके अनुमति जांच की प्रक्रिया करता है, यह हमेशा सख्ती से सत्य नहीं होता है, और मैं अनुमान लगा रहा हूं कि प्रक्रिया पर नियंत्रण प्रदान करना (जो अनुदानकर्ता को स्वामित्व की स्थिति प्रदान करता है) इन अनुमति जांचों का कारण बन रहा है बाईपास.
यदि आप EXECUTE AS OWNER के साथ प्रक्रिया बनाते हैं, तो आपको प्रक्रिया पर EXECUTE से परे कोई अनुमति देने की आवश्यकता नहीं होनी चाहिए।