2013-01-22 31 views
8

में केवल एक कॉलम पर अनुदान परिवर्तन मैं उपयोगकर्ता को केवल अपनी तालिका में एक कॉलम संपादित करना चाहता हूं। मैं यहां किस आदेश का उपयोग करता हूं? मैं ऑरैकल 11 जी डेटाबेस का उपयोग करता हूं। मैं अलौकिक जानता हूं कि मैं पूरी तालिका को केवल पढ़ने या हटाने के लिए कैसे प्रदान कर सकता हूं लेकिन मैं इसे केवल एक कॉलम या अधिक के लिए कैसे कर सकता हूं? कृपया एक उदाहरण दें।तालिका

उत्तर

13

उदाहरण के लिए, आप केवल, तो निम्नलिखित बयान देना (जहां xyz उपयोगकर्ता नाम है) Ename स्तंभ पर अद्यतन विशेषाधिकार देना चाहते हैं

grant update (ename) on emp to xyz; 

सिंटेक्स :

grant update(column-name) on table-name to user-name 

संपादित करें: (granti के लिए ng विशेषाधिकार का चयन करें)

एक्सवाईजेड में एमएमपी तालिका पर चयन विवरण देने के लिए और XYZ को इस विशेषाधिकार पर आगे बढ़ने में सक्षम होने के लिए आपको इस तरह के अनुदान में अनुदान विकल्प खंड देना होगा।

grant select on emp to xyz with grant option; 

इसके अलावा, उदाहरण के लिए आप Ename स्तंभ केवल पर अद्यतन विशेषाधिकार देना और केवल empno और Ename स्तंभों पर विशेषाधिकार सम्मिलित करना चाहते हैं, तो आप ऐसा कर सकते हैं:

grant update (ename),insert (empno, ename) on emp to xyz; 
+0

THX कि सही काम किया, लेकिन मैं सिर्फ लाल है कि यह चुनिंदा वक्तव्य के साथ काम नहीं कर रहा है। मैंने एक विकल्प के रूप में बनाया। क्या यह सही –

+0

आपका मतलब है ... कोई चुनिंदा विशेषाधिकार प्रदान नहीं कर सकता है? अच्छी तरह से मुझे लगता है कि हम भी चुनिंदा विशेषाधिकार प्रदान कर सकते हैं, –

+0

संपादित करें नोट करें: आपको अद्यतन विशेषाधिकार के साथ तालिका पर SELECT विशेषाधिकार प्रदान करना होगा। –

4

पर this source आधार पर:

केवल INSERT, UPDATE, और REFERENCES विशेषाधिकार स्तंभ स्तर पर दी जा सकती है। कॉलम स्तर पर INSERT प्रदान करते समय, आपको पंक्ति में सभी शून्य कॉलम शामिल करना होगा।

यहाँ एक उदाहरण है:

GRANT update (column_name) ON table_name TO user_name;