अनुदान, REVOKE और डेनी डेटाबेस अनुमतियां
डेटा कंट्रोल लैंग्वेज (डीसीएल) संरचित क्वेरी भाषा (एसक्यूएल) का एक उप-समूह है और डेटाबेस प्रशासकों को संबंधित डेटाबेस तक सुरक्षा पहुंच को कॉन्फ़िगर करने की अनुमति देता है। यह डाटा डेफिनिशन लैंग्वेज (डीडीएल) को पूरा करता है, जिसका उपयोग डेटाबेस ऑब्जेक्ट्स को जोड़ने और हटाने के लिए किया जाता है, और डेटाबेस मैनिपुलेशन लैंग्वेज (डीएमएल) डेटाबेस की सामग्री को पुनर्प्राप्त करने, डालने और संशोधित करने के लिए उपयोग किया जाता है।
डीसीएल एसक्यूएल सबसेट्स का सबसे सरल है, क्योंकि इसमें केवल तीन कमांड होते हैं: अनुदान, रीवोक, और डेनी। संयुक्त, ये तीन आदेश प्रशासक को बेहद दानेदार फैशन में डेटाबेस अनुमतियों को सेट और निकालने के लिए लचीलापन प्रदान करते हैं।
अनुदान कमांड के साथ अनुमतियां जोड़ना
GRANT कमांड का उपयोग प्रशासकों द्वारा डेटाबेस उपयोगकर्ता को नई अनुमतियां जोड़ने के लिए किया जाता है। इसके रूप में परिभाषित एक बहुत ही सरल वाक्यविन्यास है:
अनुदान [विशेषाधिकार] [ऑब्जेक्ट] पर [उपयोगकर्ता] [अनुदान विकल्प के साथ]यहां प्रत्येक पैरामीटर पर रैंड डाउन है जिसे आप इस कमांड के साथ आपूर्ति कर सकते हैं:
- विशेषाधिकार या तो कीवर्ड सभी (अनुमतियों की एक विस्तृत विविधता प्रदान करने के लिए) या एक विशिष्ट डेटाबेस अनुमति या अनुमतियों का सेट हो सकता है। उदाहरणों में डेटा बनाएं, चयन करें, इंस्टॉल करें, अपडेट करें, हटाएं, निष्कासित करें और देखें बनाएं।
- ऑब्जेक्ट कोई डेटाबेस ऑब्जेक्ट हो सकता है। मान्य विशेषाधिकार विकल्प इस खंड में आपके द्वारा शामिल डेटाबेस ऑब्जेक्ट के प्रकार के आधार पर भिन्न होते हैं। आमतौर पर, ऑब्जेक्ट या तो डेटाबेस, फ़ंक्शन, संग्रहीत प्रक्रिया , तालिका या दृश्य होगा।
- उपयोगकर्ता कोई डेटाबेस उपयोगकर्ता हो सकता है। यदि आप भूमिका-आधारित डेटाबेस सुरक्षा का उपयोग करना चाहते हैं तो आप इस खंड में उपयोगकर्ता के लिए एक भूमिका भी बदल सकते हैं।
- यदि आप GRANT कमांड के अंत में अनुदान विकल्प खंड के साथ वैकल्पिक शामिल करते हैं, तो आप न केवल निर्दिष्ट उपयोगकर्ता को SQL कथन में परिभाषित अनुमतियां प्रदान करते हैं बल्कि उपयोगकर्ता को अन्य डेटाबेस उपयोगकर्ताओं को समान अनुमति देने की क्षमता भी देते हैं। इस कारण से, देखभाल के साथ इस खंड का उपयोग करें।
उदाहरण के लिए, मान लीजिए कि आप उपयोगकर्ता जो को एचआर नामक डेटाबेस में कर्मचारियों की तालिका से जानकारी पुनर्प्राप्त करने की क्षमता प्रदान करना चाहते हैं। आप निम्न SQL कमांड का उपयोग कर सकते हैं:
एचआर.एम.ओ. पर कर्मचारियों को अनुदान देंजो अब कर्मचारियों की तालिका से जानकारी प्राप्त करने की क्षमता रखेगा। हालांकि, वह अन्य उपयोगकर्ताओं को उस तालिका से जानकारी पुनर्प्राप्त करने की अनुमति नहीं दे पाएगा क्योंकि आपने अनुदान विवरण में अनुदान विकल्प खंड शामिल नहीं किया है।
डेटाबेस एक्सेस को रद्द करना
REVOKE आदेश का उपयोग किसी ऐसे उपयोगकर्ता से डेटाबेस पहुंच को निकालने के लिए किया जाता है जो पहले इस तरह की पहुंच प्रदान करता था। इस आदेश के लिए वाक्यविन्यास निम्नानुसार परिभाषित किया गया है:
[अनुमति] [प्रयोजन] पर [अनुमति] [उपयोगकर्ता] [CASCADE] के लिए [अनुदान विकल्प]REVOKE आदेश के लिए पैरामीटर पर रैंडडाउन यहां दिया गया है:
- अनुमति पहचान उपयोगकर्ता से निकालने के लिए डेटाबेस अनुमतियों को निर्दिष्ट करती है। आदेश पहले पहचान की अनुमति के लिए किए गए अनुदान और डेनी दावे दोनों को रद्द करता है।
- ऑब्जेक्ट कोई डेटाबेस ऑब्जेक्ट हो सकता है। मान्य विशेषाधिकार विकल्प इस खंड में आपके द्वारा शामिल डेटाबेस ऑब्जेक्ट के प्रकार के आधार पर भिन्न होते हैं। आमतौर पर, ऑब्जेक्ट या तो डेटाबेस, फ़ंक्शन, संग्रहीत प्रक्रिया, तालिका या दृश्य होगा।
- उपयोगकर्ता कोई डेटाबेस उपयोगकर्ता हो सकता है। यदि आप भूमिका-आधारित डेटाबेस सुरक्षा का उपयोग करना चाहते हैं तो आप इस खंड में उपयोगकर्ता के लिए एक भूमिका भी बदल सकते हैं।
- खंड के लिए अनुदान विकल्प निर्दिष्ट उपयोगकर्ताओं की अन्य अनुमतियों को निर्दिष्ट अनुमति देने की क्षमता को हटा देता है। नोट : यदि आप एक REVOKE कथन में खंड के लिए अनुदान विकल्प शामिल करते हैं, तो प्राथमिक अनुमति निरस्त नहीं की जाती है । यह खंड केवल अनुदान क्षमता को रद्द करता है।
- CASCADE विकल्प किसी भी उपयोगकर्ता से निर्दिष्ट अनुमति को भी रद्द करता है जिसे निर्दिष्ट उपयोगकर्ता ने अनुमति दी है।
उदाहरण के लिए, निम्न आदेश पिछले उदाहरण में जो को दी गई अनुमति को निरस्त करता है:
जो से मानव संसाधन कर्मचारियों पर चयन करेंस्पष्ट रूप से डेटाबेस एक्सेस अस्वीकार कर रहा है
डेनी कमांड का प्रयोग किसी उपयोगकर्ता को विशेष अनुमति प्राप्त करने से रोकने के लिए किया जाता है। यह सहायक होता है जब कोई उपयोगकर्ता किसी भूमिका या समूह का सदस्य होता है जिसे अनुमति दी जाती है, और आप उस व्यक्तिगत उपयोगकर्ता को अपवाद बनाकर अनुमति प्राप्त करने से रोकना चाहते हैं। इस आदेश के लिए वाक्यविन्यास इस प्रकार है:
डेनिस [अनुमति] [ऑब्जेक्ट] पर [उपयोगकर्ता] डेनी कमांड के पैरामीटर GRANT कमांड के लिए उपयोग किए गए लोगों के समान हैं।
उदाहरण के लिए, यदि आप यह सुनिश्चित करना चाहते हैं कि मैथ्यू को कर्मचारी तालिका से जानकारी हटाने की क्षमता कभी प्राप्त न हो, तो निम्न आदेश जारी करें: