मैं अपने SQL Server 2012 उदाहरण पर एक "रीडिंग" उपयोगकर्ता सेट करना चाहूंगा। मैं उसे किसी भी संग्रहीत कार्यविधि, या फ़ंक्शन, या प्रत्यक्ष SQL कथन को निष्पादित करने का अधिकार देना चाहूंगा, जो सभी तालिकाओं और विचारों से डेटा को पुनर्प्राप्त करता है, लेकिन अद्यतन करने या सम्मिलित करने के लिए नहीं (यानी कुछ भी पढ़ें और कुछ भी न लिखें)।
क्या मैं इसे विशेष रूप से प्रत्येक फ़ंक्शन या नाम द्वारा संग्रहीत प्रक्रिया के अधिकार दिए बिना सेट कर सकता हूं, लेकिन उसे किसी भी फ़ंक्शन या संग्रहीत कार्यविधि पर निष्पादन का अधिकार देता हूं, बस तालिकाओं को संशोधित करने का अधिकार छीन लेता हूं?
अगर मैं इसके बजाय SQL Server 2008 चलाऊ तो क्या कुछ बदल जाएगा?
स्पष्टीकरण और परिवर्धन:
- यदि कोई संग्रहीत कार्यविधि डेटा को बदलती है, तो उपयोगकर्ता को एक त्रुटि संदेश प्राप्त होना चाहिए (या तो संशोधन को अस्वीकार कर सकता है या पूरी तरह से संग्रहीत प्रक्रिया तक पहुंच से इनकार कर सकता है)।
- यदि संभावित समाधान में अनुमतियों को अस्वीकार करना शामिल है, तो क्या मैं इनकार करने के बजाय कुछ अनुमतियों को प्रदान नहीं कर सकता हूं?
- क्या एक बयान में डेटाबेस में सभी तालिकाओं, विचारों आदि (अभी और भविष्य में) पर एक इनकार लागू किया जा सकता है?
GRANTदेने के DENYलिए , अनुमति देने से इनकार करने और या REVOKEहटाने के लिए 3 अनुमति संस्करण हैं । बिना या उपयोगकर्ता अनुमतियाँ इनहेरिट कर सकते हैं, संग्रहीत कार्यविधि तक पहुँच प्राप्त करने से कह सकते हैं। GRANTDENYGRANTDENY
DENY DELETE, INSERT, UPDATEकिसी डेटाबेस या स्कीमा पर हैं, तो मेरा मानना है कि यह केवल तालिकाओं और विचारों को प्रभावित करेगा।