हमें नए उपयोगकर्ता को विशेषाधिकार देने की आवश्यकता है जिसे हमने बनाया है क्योंकि नए उपयोगकर्ता के पास विशेषाधिकार नहीं होंगे। हम उपयोगकर्ता खाते को विशेषाधिकार देने के लिए GRANT स्टेटमेंट का उपयोग कर सकते हैं। इसका सिंटैक्स इस प्रकार होगा -
सिंटैक्स
<पूर्व>अनुदान विशेषाधिकार,[विशेषाधिकार],.. विशेषाधिकार_स्तर पर उपयोगकर्ता [पासवर्ड द्वारा पहचाना गया] [आवश्यक tsl_option][GRANT_OPTION के साथ | संसाधन_विकल्प]];उपरोक्त सिंटैक्स की व्याख्या इस प्रकार है -
सबसे पहले, GRANT कीवर्ड के बाद एक या अधिक विशेषाधिकार निर्दिष्ट करें। यदि हम उपयोगकर्ता को अनेक विशेषाधिकार प्रदान करते हैं, तो प्रत्येक विशेषाधिकार अल्पविराम द्वारा अलग किया जाता है।
इसके बाद, विशेषाधिकार_स्तर निर्दिष्ट करें जो उस स्तर को निर्धारित करता है जिस पर विशेषाधिकार लागू होते हैं। MySQL ग्लोबल (*.*), डेटाबेस (डेटाबेस। *), टेबल (डेटाबेस.टेबल) और कॉलम लेवल को सपोर्ट करता है। यदि हम स्तंभ विशेषाधिकार स्तर का उपयोग करते हैं, तो हमें प्रत्येक विशेषाधिकार के बाद एक या अल्पविराम से अलग किए गए स्तंभ की सूची निर्दिष्ट करनी होगी।
फिर, उस उपयोगकर्ता को रखें जिसे हम विशेषाधिकार देना चाहते हैं। यदि उपयोगकर्ता पहले से मौजूद है, तो GRANTstatement इसके विशेषाधिकार को संशोधित करता है। अन्यथा, GRANT कथन एक नया उपयोगकर्ता बनाता है। द्वारा पहचाना गया वैकल्पिक खंड हमें उपयोगकर्ता के लिए एक नया पासवर्ड सेट करने की अनुमति देता है।
उसके बाद, हम निर्दिष्ट करते हैं कि उपयोगकर्ता को एसएसएल, एक्स059, आदि जैसे सुरक्षित कनेक्शन पर डेटाबेस सर्वर से कनेक्ट करना है या नहीं।
अंत में, GRANT OPTION क्लॉज के साथ वैकल्पिक हमें अन्य उपयोगकर्ताओं को प्रदान करने या अन्य उपयोगकर्ताओं से हमारे पास मौजूद विशेषाधिकारों को हटाने की अनुमति देता है। इसके अलावा, हम MySQL डेटाबेस सर्वर के संसाधन को आवंटित करने के लिए WITH क्लॉज का उपयोग कर सकते हैं, उदाहरण के लिए, यह निर्धारित करने के लिए कि उपयोगकर्ता प्रति घंटे कितने कनेक्शन या स्टेटमेंट का उपयोग कर सकता है। यह साझा वातावरण में बहुत मददगार है जैसे कि MySQL साझा होस्टिंग।
उदाहरण
नीचे दिए गए उदाहरण में हम एक उपयोगकर्ता बना रहे हैं और उसे विशेषाधिकार प्रदान कर रहे हैं -
mysql> mysqlDatabase changemysql का उपयोग करें> 'पासवर्ड123' द्वारा पहचाने गए उपयोगकर्ता abcd@localhost बनाएं;क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.04 सेकंड)
नीचे दी गई क्वेरी हमें नए उपयोगकर्ता खाते abcd@localhost के लिए विशेषाधिकार प्रदान करेगी।
mysql> abcd@localhost के लिए अनुदान दिखाएं;+------------------------------------- -----+| एबीसीडी@लोकलहोस्ट के लिए अनुदान |+------------------------------------------+ | *.* पर 'abcd'@'localhost' पर उपयोग अनुदान |+-------------------------------------- --------+1 पंक्ति सेट में (0.01 सेकंड)
अब, abcd@localhost उपयोगकर्ता खाते को सभी विशेषाधिकार प्रदान करने के लिए, हम निम्नलिखित कथन का उपयोग कर सकते हैं -
mysql> GRANT ALL ON *.* 'abcd'@'localhost' with GRANT OPTION;क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.05 सेकंड)
यहां, ON *.* क्लॉज का अर्थ है सभी डेटाबेस और डेटाबेस में सभी ऑब्जेक्ट। अनुदान के साथ विकल्प abcd@localhost को अन्य उपयोगकर्ताओं को विशेषाधिकार प्रदान करने की अनुमति देता है।
अब अगर हम SHOW GRANTS स्टेटमेंट का फिर से उपयोग करेंगे, तो हम देखेंगे कि abcd@localhost के विशेषाधिकार अपडेट कर दिए गए हैं।
mysql> abcd@localhost के लिए अनुदान दिखाएं;+------------------------------------- --------------------------------+| एबीसीडी@लोकलहोस्ट के लिए अनुदान |+------------------------------------------ --------------------------+| अनुदान विकल्प के साथ *.* 'abcd'@'localhost' पर सभी विशेषाधिकार प्रदान करें |+---------------------------- ----------------------------------------+1 पंक्ति सेट में (0.00 सेकंड)पूर्व>