GRANT, REVOKE र DENY डेटाबेस अनुमतिहरू
डाटा कंट्रोल भाषा (डीसीएल) संरचित क्वेरी भाषा (एसक्यूएल) को एक सबसेट हो र डेटाबेस प्रशासकहरूले नैतिक डेटाबेसमा सुरक्षा पहुँच कन्फिगर गर्न अनुमति दिन्छ। यसले डाटा परिभाषा भाषा (DDL) लाई पूरै गर्दछ, जुन डेटाबेस वस्तुहरू थप्न र मेटाउन प्रयोग गरिन्छ, र डेटा हेरफेर भाषा (डीएमएल) डेटाबेसको सामग्री पुन: प्राप्त, सम्मिलित, र परिमार्जन गर्न प्रयोग गरिन्छ।
DCL SQL सब्सक्रसहरूको सजिलो हो, किनभने यो केवल तीन आज्ञाहरू छन्: ग्रन्थ, रिभोभ र डेनी। संयुक्त, यी तीन आदेशहरूले प्रशासकहरूलाई अत्यन्त दाँत वाला फूलमा डाटाबेस अनुमतिहरू सेट गर्न र हटाउन लचीलापन प्रदान गर्दछ।
अनुमतिहरू थप गर्नुहोस् GRANT आदेशको साथ
GRANT आदेश प्रशासकहरू द्वारा प्रयोग गरिएको छ डेटाबेस प्रयोगकर्तामा नयाँ अनुमतिहरू थप्न। यसमा धेरै सरल सिन्ट्याक्स छ, निम्नानुसार परिभाषित गरिएको छ:
GRANT [विशेषाधिकार] ON [object] मा [प्रयोगकर्ता] [चन्दा विकल्प संग]यहाँ यो आदेशको साथ प्रदान गर्न सक्नुहुनेछ प्रत्येक प्यारामिटरमा भर्याङ हो:
- विशेषाधिकार या त कीवर्ड ALL (विस्तृत विविधता प्रदान गर्न को लागि) या एक विशिष्ट डेटाबेस को अनुमति या अनुमति को सेट हुन सक्छ। उदाहरणहरू सृजन डाटाबेस चयन गर्नुहोस्, चयन गर्नुहोस्, इन्टरनेट, अद्यावधिक, मेटाउनुहोस्, एक्स्टेट गर्नुहोस् र सिर्जना गर्नुहोस्।
- वस्तु कुनै पनि डाटाबेस वस्तु हुन सक्छ। मान्य विशेषाधिकार विकल्प डेटाबेस वस्तुको प्रकारमा आधारित छ जुन तपाईं यस खण्डमा समावेश गर्दछ। सामान्यतया, वस्तु या त डाटाबेस, प्रकार्य, भण्डारण प्रक्रिया , तालिका वा दृश्य हुनेछ।
- प्रयोगकर्ता कुनै डेटाबेस प्रयोगकर्ता हुन सक्छ। यदि तपाइँ भूमिका-आधारित डाटाबेस सुरक्षाको प्रयोग गर्न चाहानुहुन्छ भने तपाइँ यस क्लाइन्टमा प्रयोगकर्ताको भूमिका पनि विकल्प गर्न सक्नुहुनेछ।
- यदि तपाईं GRANT कमानको अन्तमा वैकल्पिक रूपमा GRANT OPTION खण्ड समावेश गर्दछ भने, तपाईं मात्र निर्दिष्ट प्रयोगकर्तालाई SQL बयानमा परिभाषित अनुमति प्रदान नगर्नु हुन्छ तर प्रयोगकर्तालाई अन्य डेटाबेस प्रयोगकर्ताहरूलाई ती समान अनुमतिहरू प्रदान गर्ने क्षमता प्रदान गर्दछ। यस कारणको लागि, यो खण्ड हेरचाहको साथ प्रयोग गर्नुहोस्।
उदाहरणको लागी, तपाईलाई प्रयोगकर्ता जो मानव कर्म भनिन्छ डेटाबेसमा कर्मचारी तालिकाबाट जानकारी पुन: प्राप्त गर्ने क्षमता प्रदान गर्न चाहानुहुन्छ। तपाईले निम्न SQL आदेश प्रयोग गर्न सक्नुहुन्छ:
जुन जो HR मा कर्मचारीहरू चयन गर्नुहोस्जो अबसँग कर्मचारी कर्मचारीको जानकारी पुनः प्राप्त गर्ने क्षमता हुनेछ। तथापि, त्यस तालिकाबाट जानकारी पुन: प्राप्त गर्न अन्य प्रयोगकर्ताहरूलाई अनुमति प्रदान गर्न सक्षम हुनुहुँदैन किनभने तपाईंले GRANT बयानमा अनुदान विकल्प क्लज समावेश गर्नुभएन।
डाटाबेस पहुँच रिभोकिङ
प्रयोगकर्ताको डेटाबेस पहुँच हटाउनको लागि REVOKE आदेश पहिले प्रयोग गरिएको यस्तो पहुँच प्रदान गरिएको छ। यस आदेशको लागि वाक्य रचना निम्नानुसार परिभाषित गरिएको छ:
रिभोक गर्नुहोस् [ग्रन्ट विकल्पको लागि] [अनुमति] ON [object] बाट [प्रयोगकर्ता] [क्यासकेड]यहाँ REVOKE कमांडका लागि परिमितिहरूमा भित्री स्थान छ:
- अनुमति पहिचान गरिएको प्रयोगकर्ताबाट हटाउन डाटाबेस अनुमतिहरू निर्दिष्ट गर्दछ। आदेश पहिले पहिचान गरिएको अनुमतिको लागि बनाएको चन्दा र दुबै दावीहरू दोहोरिन्छ।
- वस्तु कुनै पनि डाटाबेस वस्तु हुन सक्छ। मान्य विशेषाधिकार विकल्प डेटाबेस वस्तुको प्रकारमा आधारित छ जुन तपाईं यस खण्डमा समावेश गर्दछ। सामान्यतया, वस्तु या त डाटाबेस, प्रकार्य, भण्डारण प्रक्रिया, तालिका वा दृश्य हुनेछ।
- प्रयोगकर्ता कुनै डेटाबेस प्रयोगकर्ता हुन सक्छ। यदि तपाइँ भूमिका-आधारित डाटाबेस सुरक्षाको प्रयोग गर्न चाहानुहुन्छ भने तपाइँ यस क्लाइन्टमा प्रयोगकर्ताको भूमिका पनि विकल्प गर्न सक्नुहुनेछ।
- क्लजको लागि GRANT विकल्प निर्दिष्ट प्रयोगकर्ताको अन्य प्रयोगकर्ताहरूलाई निर्दिष्ट अनुमति प्रदान गर्ने क्षमता हटाउँछ। नोट : यदि तपाईं REVOKE बयानमा क्लजको लागि GRANT विकल्प समावेश गर्दछ भने, प्राथमिक अनुमति खारेज गरिएको छैन । यो क्लोजले केवल अनुदान क्षमता मात्र बदल्छ।
- CASCADE विकल्पले निर्दिष्ट अनुमतिलाई अनुमति दिन्छ जुन प्रयोगकर्ताले अनुमति दिएको प्रयोगकर्तालाई अनुमति दिन्छ।
उदाहरणका लागि, निम्न आदेशले पछिल्लो उदाहरणमा जोलाई दिइएको अनुमतिलाई पुनः अस्वीकार गर्छ:
यसका लागी मानवअधिकारका लागि छनोट गर्नुहोस्स्पष्ट रूपमा डेटाबेस पहुँच अस्वीकार
DENY आदेश प्रयोग स्पष्ट रूपमा प्राप्त अनुमतिबाट प्रयोगकर्तालाई रोक्न प्रयोग गरिन्छ। जब प्रयोगकर्ता एक भूमिका वा समूहलाई अनुमति दिईयो, तब उपयोगी हुन्छ र तपाईले व्यक्तिगत प्रयोगकर्तालाई अपवाद सिर्जना गरेर अनुमति विरासतबाट रोक्न चाहानुहुन्छ। यस आदेशको लागि वाक्य रचना निम्नानुसार छ:
DENY [अनुमति] ON [object] TO [user] DENY आदेशका लागि प्यारामिटरहरू GRANT आदेशका लागि प्रयोग भएकाहरूको समान छन्।
उदाहरणका लागि, यदि तपाइँ चाहानुहुन्छ कि म्याथले कर्मचारि तालिकाबाट जानकारी मेटाउन सक्ने क्षमता कहिल्यै पाउँदैन, निम्न आदेश जारी गर्नुहोस्: