6

मैं SQL सर्वर 2008 एक्सप्रेस संस्करण का उपयोग कर रहा हूं।मैं एक स्कीमा पर डेटाबेस भूमिका निष्पादन अनुमतियाँ कैसे प्रदान करूं? मैं क्या गलत कर रहा हूं?

मैंने लॉगिन, उपयोगकर्ता, भूमिका और स्कीमा बनाया है। मैंने उपयोगकर्ता को लॉगिन करने के लिए मैप किया है, और उपयोगकर्ता को भूमिका सौंपी है।

स्कीमा में कई टेबल और संग्रहित प्रक्रियाएं हैं।

मैं पूरी स्कीमा पर निष्पादन अनुमतियां रखना चाहता हूं।

मैंने प्रबंधन स्टूडियो के माध्यम से निष्पादन अनुमति देने और क्वेरी विंडो में कमांड दर्ज करने का प्रयास किया है।

GRANT EXEC ON SCHEMA::schema_name TO role_name 

लेकिन जब मैं एसक्यूएल प्रबंधन स्टूडियो (प्रवेश के रूप में मैं पैदा की है) का उपयोग सबसे पहले मैं संग्रहित प्रक्रियाओं नहीं देख सकते हैं डेटाबेस से कनेक्ट है, लेकिन अधिक महत्वपूर्ण बात मैं जब उन्हें चलाने का प्रयास एक अनुमति नहीं दी त्रुटि मिलती है।

प्रश्न में संग्रहीत प्रक्रिया एक ही schma के भीतर एक तालिका से चयन डेटा को छोड़कर कुछ भी नहीं करता है।

मैं के साथ और लाइन के बिना संग्रहीत प्रक्रिया बनाने की कोशिश की है:

WITH EXECUTE AS OWNER 

यह कोई फर्क नहीं पड़ता।

मुझे संदेह है कि मैंने अपनी स्कीमा बनाने के दौरान कोई त्रुटि की है, या कहीं स्वामित्व समस्या है, लेकिन मैं वास्तव में कुछ काम करने के लिए संघर्ष कर रहा हूं।

संग्रहित प्रक्रियाओं को निष्पादित करने में सफलतापूर्वक प्रबंधित करने का एकमात्र तरीका भूमिका के साथ-साथ निष्पादन के लिए नियंत्रण अनुमतियां दे रहा है, लेकिन मुझे विश्वास नहीं है कि यह आगे बढ़ने का सही, सुरक्षित तरीका है।

किसी भी सुझाव/टिप्पणियों की वास्तव में सराहना की जाएगी।

धन्यवाद।

+0

क्या आपने स्पोक के लिए बनाए गए उपयोगकर्ता को निष्पादित अनुमतियां दी थीं? –

उत्तर

4

कुछ मामले हैं जो मैं आपके मामले में देख सकता हूं।

सबसे पहले आपको प्रबंधन स्टूडियो में ऑब्जेक्ट देखने में सक्षम होने के लिए आवश्यक परिभाषा की आवश्यकता होगी।

मैं इस सिफारिश करेंगे अगर आप भूमिका सभी अनुमतियों करना चाहते हैं,

GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, VIEW DEFINITION 
    ON Schema::SchemaName TO [RoleName/LoginName] 

इसके अलावा अपने उपयोगकर्ता परिभाषित स्कीमा के मालिक सुनिश्चित करें कि "dbo" है।

+1

अनुदान [कुछ उपयोगकर्ता] अनुदान दृश्य सर्वर [कुछ उपयोगकर्ता]/* के लिए किसी भी परिभाषा को देखते हैं, ये "केवल पढ़ने" सब कुछ देने के लिए 2 अन्य अनुमतियां हैं * / – granadaCoder

संबंधित मुद्दे