MySQL दुनिया के सबसे लोकप्रिय डेटाबेस मैनेजरों में से एक है। इसमें कई विशेषताएं हैं जो इसे विश्वसनीय, कुशल और मजबूत बनाती हैं। यदि इसका सही उपयोग किया जाए तो इसकी अधिकतम विश्वसनीयता प्राप्त की जाती है। डेटाबेस पर सीमित अनुमतियों वाले उपयोगकर्ता बनाना MySQL सुरक्षा बढ़ाने के सबसे आसान और विश्वसनीय तरीकों में से एक है।
MySQL उपयोगकर्ता बनाएं
MySQL इंस्टाल करते समय, रूट यूजर (MySQL एडमिनिस्ट्रेटर) बनाया जाने वाला पहला यूजर होता है। रूट उपयोगकर्ता को MySQL डेटाबेस पर कुछ भी और सब कुछ करने की अनुमति है। अन्य लोगों के लिए इस खाते का उपयोग करके आपके डेटाबेस तक पहुंचना सुविधाजनक है।
दुर्भावनापूर्ण उपयोगकर्ता होस्ट की गई जानकारी को चुराने या डेटा के साथ सेवा को नष्ट करने के लिए रूट उपयोगकर्ताओं के रूप में लॉग इन करने का प्रयास कर सकते हैं। इसलिए, सिस्टम व्यवस्थापक को डेटाबेस पर विशिष्ट अनुमतियों वाले उपयोगकर्ता बनाना होगा। यह सुनिश्चित करता है कि यदि उस उपयोगकर्ता की सुरक्षा से समझौता किया जाता है, तो प्रभाव न्यूनतम या प्रबंधनीय होता है।
MySQL क्रिएट यूजर स्टेटमेंट आपको डेटाबेस सर्वर में एक नया यूजर अकाउंट बनाने की अनुमति देता है। यह नए खातों के लिए प्रमाणीकरण, संसाधन सीमा, भूमिका और पासवर्ड प्रबंधन गुण प्रदान करता है। यह कथन हमें उन खातों को नियंत्रित करने की भी अनुमति देता है जिन्हें लॉक या अनलॉक किया जाना चाहिए।
उपयोगकर्ता बनाने के लिए, "उपयोगकर्ता बनाएं" कथन या MySQL सिस्टम स्कीमा के लिए INSERT विशेषाधिकार का वैश्विक विशेषाधिकार (रूट उपयोगकर्ता बनें) होना आवश्यक है। यदि आप पहले से मौजूद उपयोगकर्ता बनाने का प्रयास करते हैं तो एक त्रुटि दिखाई देती है, लेकिन यदि आप "IF NOT EXISTS" क्लॉज का उपयोग करते हैं, तो स्टेटमेंट प्रत्येक नामित उपयोगकर्ता के लिए एक चेतावनी देता है जो एक त्रुटि संदेश के बजाय पहले से मौजूद है।
एक गैर-रूट उपयोगकर्ता बनाने के लिए और उन्हें डेटाबेस तक पहुँचने और संशोधित करने के लिए विशिष्ट विशेषाधिकार प्रदान करने के लिए, हम निम्नलिखित सिंटैक्स का उपयोग करते हैं:
CREATE USER IF NOT EXISTS 'fosslinux'@'localhost' IDENTIFIED BY 'foss12345';
account_name के दो भाग हैं; उपयोगकर्ता नाम और होस्टनाम, @ प्रतीक द्वारा अलग किया गया। उपयोगकर्ता नाम उपयोगकर्ता का नाम है, जबकि होस्टनाम होस्ट का नाम है जिससे उपयोगकर्ता डेटाबेस सर्वर से जुड़ सकता है।
username@hostname
होस्टनाम वैकल्पिक है। यदि होस्टनाम नहीं दिया गया है, तो उपयोगकर्ता सर्वर पर किसी भी होस्ट से जुड़ सकता है। होस्टनाम के बिना उपयोगकर्ता खाते का नाम उपयोगकर्ता नाम @% के रूप में लिखा जा सकता है
CREATE USER IF NOT EXISTS 'fosslinux@%' IDENTIFIED BY 'foss12345';
ध्यान दें कि उपयोगकर्ता कथन बनाएँ पूर्ण पहुँच के साथ एक नया उपयोगकर्ता बनाता है। उपयोगकर्ता को विशेषाधिकार देने के लिए, GRANT स्टेटमेंट का उपयोग करें
MySQL डेटाबेस में एक नया उपयोगकर्ता बनाने के लिए निम्न चरणों का उपयोग करें:
1. MySQL क्लाइंट टूल का उपयोग करके, MySQL सर्वर खोलें
2. पासवर्ड टाइप करें, फिर एंटर दबाएं।
3. निम्न आदेश का उपयोग करके एक नया उपयोगकर्ता बनाएं
create user 'foss'@'localhost' identified by 'foss12345';
4. उपयोगकर्ताओं को MySQL सर्वर में दिखाने के लिए निम्न कमांड का उपयोग करें
select user from mysql.user;
दिखाए गए आउटपुट से, उपयोगकर्ता 'फोस' सफलतापूर्वक बनाया गया है।
5. अब IF NOT EXISTS क्लॉज का उपयोग CREATE USER स्टेटमेंट के साथ निम्न कमांड को चलाकर करें:
MySQL के नए उपयोगकर्ता को विशेषाधिकार देना
एक नए उपयोगकर्ता को MySQL सर्वर द्वारा प्रदान किए गए कुछ सबसे सामान्य विशेषाधिकारों में शामिल हैं;
1. सभी विशेषाधिकार: नए उपयोगकर्ता खाते के लिए सभी विशेषाधिकारों की अनुमति देता है
2. बनाएं: उपयोगकर्ता खाते को डेटाबेस और टेबल बनाने में सक्षम बनाता है
3. ड्रॉप: उपयोगकर्ता खाते को डेटाबेस और टेबल छोड़ने में सक्षम बनाता है
4. हटाएं: उपयोगकर्ता खाते को विशिष्ट तालिका से पंक्तियों को हटाने में सक्षम बनाता है
5. सम्मिलित करें: उपयोगकर्ता खाते को एक विशिष्ट तालिका में पंक्तियों को सम्मिलित करने में सक्षम बनाता है
6. चुनें: उपयोगकर्ता खाते को डेटाबेस पढ़ने में सक्षम बनाता है
7. अद्यतन: उपयोगकर्ता खाते को तालिका पंक्तियों को अपडेट करने में सक्षम बनाता है
उपयोगकर्ता को सभी विशेषाधिकार प्रदान करने के लिए निम्न आदेश निष्पादित करें
GRANT ALL PRIVILEGES ON *.* TO 'foss'@'localhost';
नए बनाए गए उपयोगकर्ता को विशिष्ट विशेषाधिकार देने के लिए निम्न आदेश निष्पादित करें,
GRANT CREATE, SELECT, INSERT ON *.* TO 'foss'@'localhost';
उपयोगकर्ता को सौंपे गए सभी विशेषाधिकारों को फ्लश करने के लिए, नीचे दिए गए आदेश को निष्पादित करें।
FLUSH PRIVILEGES;
किसी उपयोगकर्ता को सौंपे गए मौजूदा विशेषाधिकारों को देखने के लिए, निम्न आदेश निष्पादित करें।
SHOW GRANTS FOR 'foss'@'localhost';
MySQL ड्रॉप उपयोगकर्ता
MySQL ड्रॉप यूजर स्टेटमेंट आपको डेटाबेस सर्वर से एक या अधिक उपयोगकर्ता खातों और उनके विशेषाधिकारों को हटाने की अनुमति देता है। यदि उपयोगकर्ता खाता डेटाबेस सर्वर में मौजूद नहीं है, तो यह एक त्रुटि लौटाएगा।
ड्रॉप यूजर स्टेटमेंट का उपयोग करने के लिए, आपके पास वैश्विक विशेषाधिकार या MySQL सिस्टम स्कीमा के लिए DELETE विशेषाधिकार होना चाहिए।
डेटाबेस सर्वर से उपयोगकर्ता खातों को पूरी तरह से हटाने का सिंटैक्स इस प्रकार है:
DROP USER 'foss'@'localhost';
नोट: ऊपर दिए गए उदाहरण में खाते का नाम उपयोगकर्ता नाम @ होस्टनाम के रूप में पहचाना गया है। उपयोगकर्ता नाम उस खाते का नाम है जिसे आप डेटाबेस सर्वर से हटाना चाहते हैं, और होस्टनाम उपयोगकर्ता खाते का सर्वर का नाम है। उदाहरण के लिए, 'फॉस @ लोकलहोस्ट'। फोस उपयोगकर्ता नाम है, जबकि लोकलहोस्ट होस्टनाम है।
किसी मौजूदा उपयोगकर्ता को MySQL सर्वर डेटाबेस से हटाते समय अनुसरण करने के लिए निम्नलिखित चरण हैं;
1. MySQL क्लाइंट टूल का उपयोग करके, MySQL सर्वर खोलें
2. अकाउंट पासवर्ड टाइप करें, फिर एंटर दबाएं
3. किसी उपयोगकर्ता खाते को छोड़ने के लिए, निम्न आदेश निष्पादित करें
DROP USER 'fosslinux'@'localhost';
4. उपयोगकर्ताओं को दिखाने के लिए निम्न आदेश निष्पादित करें
select user from mysql.user;
आपको एक आउटपुट मिलेगा जिसमें उपयोगकर्ता नाम फॉसलिनक्स मौजूद नहीं होगा, जैसा कि नीचे दिखाया गया है:
5. ड्रॉप उपयोगकर्ता का उपयोग एक साथ एक से अधिक उपयोगकर्ता खातों को हटाने के लिए भी किया जा सकता है। ऐसा करने के लिए, आप account_names को अल्पविराम का उपयोग करके अलग करते हैं।
नोट: चूंकि हमने पहले ही उपयोगकर्ताओं को छोड़ दिया था, इसलिए हम उपयोगकर्ता अवधारणाओं (fosslinuxtuts और fosslinux@%) का उपयोग करके दो उपयोगकर्ता बनाएंगे। उसके बाद, हम मौजूदा उपयोगकर्ताओं को नीचे दिखाए अनुसार दिखाने के लिए चरण 4 में कमांड चलाएंगे:
अब नीचे दिए गए कमांड का उपयोग करके दो उपयोगकर्ताओं को एक साथ छोड़ें:दोनों उपयोगकर्ताओं को छोड़ने के लिए निम्न आदेश निष्पादित करें:
DROP USER 'fosslinuxtuts'@'localhost', 'fosslinux@%' ;
ध्यान दें कि DROP कथन किसी भी खुले उपयोगकर्ता सत्र को स्वचालित रूप से बंद नहीं कर सकता है। जब उपयोगकर्ता खाता सत्र सक्रिय होने पर DROP कथन निष्पादित किया जाता है, तो सत्र बंद होने तक कमांड इसे प्रभावित नहीं करता है। सत्र बंद होने पर ही उपयोगकर्ता खाता हटा दिया जाता है, और उपयोगकर्ता का अगला प्रयास फिर से लॉग इन नहीं कर पाएगा।
MySQL उपयोगकर्ता दिखाएं/सभी उपयोगकर्ताओं की सूची बनाएं
MySQL में डेटाबेस को प्रबंधित करने के लिए, आपको डेटाबेस में सभी उपयोगकर्ता के खातों की सूची देखनी होगी। लोग मानते हैं कि डेटाबेस सर्वर में उपलब्ध सभी उपयोगकर्ताओं की सूची प्रदर्शित करने के लिए SHOW DATABASE या SHOW TABLES के समान एक SHOW USERS कमांड है। दुर्भाग्य से, MySQL सर्वर में MySQL सर्वर में सभी उपयोगकर्ताओं की सूची प्रदर्शित करने के लिए SHOW USERS कमांड नहीं है। इसलिए इसके बजाय, हम डेटाबेस सर्वर में सभी उपयोगकर्ताओं की सूची देखने के लिए निम्न क्वेरी का उपयोग करते हैं:
select user from mysql.user;
कमांड निष्पादित करने के बाद, आपको उपयोगकर्ता डेटा MySQL डेटाबेस सर्वर की उपयोगकर्ता तालिका से प्राप्त होगा।
नोट: इस उदाहरण में, हम MySQL डेटाबेस का उपयोग करेंगे। नीचे दिए गए कमांड को चलाकर डेटाबेस का चयन करें, फिर मौजूदा उपयोगकर्ताओं की जांच करने के लिए सेलेक्ट फ्रॉम स्टेटमेंट का उपयोग करें जैसा कि नीचे की छवि में दिखाया गया है:
use mysql;
SELECT user FROM user;
यदि आप उपयोगकर्ता तालिका पर अधिक जानकारी देखना चाहते हैं, तो निम्न आदेश निष्पादित करें:
DESC user;
कमांड निम्न आउटपुट देगा जो mysql.user डेटाबेस के सभी उपलब्ध कॉलमों को सूचीबद्ध करता है:
होस्टनाम, पासवर्ड समाप्ति स्थिति और खाता लॉकिंग जैसी चयनित जानकारी प्राप्त करने के लिए, निम्न क्वेरी निष्पादित करें:
SELECT user, host, account_locked, password_expired FROM user;
क्वेरी के सफल निष्पादन के बाद निम्न आउटपुट दिखाई देगा:
वर्तमान उपयोगकर्ता दिखाएं
आप नीचे दिखाए गए अनुसार उपयोगकर्ता () या current_user () फ़ंक्शन का उपयोग करके वर्तमान उपयोगकर्ता की जानकारी प्राप्त कर सकते हैं:
Select user();
या
Select current_user();
उपरोक्त किसी भी आदेश को सफलतापूर्वक निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा।
वर्तमान में लॉग किया हुआ उपयोगकर्ता दिखाएं
आप उस उपयोगकर्ता को देख सकते हैं जो वर्तमान में MySQL सर्वर में निम्न कमांड का उपयोग करके डेटाबेस सर्वर में लॉग इन है:
SELECT user, host, db, command FROM information_schema.processlist;
ऊपर दिए गए कमांड नीचे दिखाए गए स्क्रीन के समान स्क्रीन आउटपुट करते हैं:
MySQL यूजर पासवर्ड कैसे बदलें
MySQL उपयोगकर्ता रिकॉर्ड में डेटाबेस तक पहुँचने और प्रबंधित करने के लिए MySQL खाते की लॉगिन जानकारी, खाता विशेषाधिकार और होस्ट जानकारी होती है। लॉगिन जानकारी में उपयोगकर्ता नाम और पासवर्ड शामिल है। इसलिए, MySQL डेटाबेस में उपयोगकर्ता पासवर्ड बदलने की आवश्यकता हो सकती है।
किसी भी उपयोगकर्ता खाते का पासवर्ड बदलने के लिए, निम्नलिखित जानकारी को ध्यान में रखना याद रखें:
- बदले जाने वाले उपयोगकर्ता खाते का विवरण
- एप्लिकेशन का उपयोग उस उपयोगकर्ता खाते द्वारा किया जाता है जिसका पासवर्ड बदलना है। यदि उपयोगकर्ता खाते का पासवर्ड किसी एप्लिकेशन कनेक्शन स्ट्रिंग को बदले बिना रीसेट कर दिया गया है, तो एप्लिकेशन डेटाबेस सर्वर से कनेक्ट नहीं हो सकता है।
MySQL आपको उपयोगकर्ता खाता पासवर्ड को तीन अलग-अलग तरीकों से बदलने की अनुमति देता है:
- अद्यतन विवरण
- पासवर्ड विवरण सेट करें
- उपयोगकर्ता का विवरण बदलें
अपडेट स्टेटमेंट का उपयोग करके उपयोगकर्ता खाता पासवर्ड बदलना
अद्यतन विवरण को निष्पादित करने के बाद, हम MySQL डेटाबेस की अनुदान तालिका से विशेषाधिकारों को पुनः लोड करने के लिए FLUSH PRIVILEGE कथन का उपयोग करते हैं। निम्न आदेश निष्पादित करें:
USE mysql;
UPDATE user SET password=password('kip12345') WHERE user='foss';
FLUSH PRIVILEGES;
उपरोक्त कथन MySQL संस्करण 5.7.6 या उच्चतर पर काम नहीं करेगा क्योंकि MySQL उपयोगकर्ता तालिका में प्रमाणीकरण स्ट्रिंग कॉलम होता है जो केवल पासवर्ड संग्रहीत करता है। निम्न कथन में दिखाए गए अनुसार उच्चतर संस्करणों में अद्यतन विवरण में प्रमाणीकरण स्ट्रिंग कॉलम होता है:
USE mysql;
UPDATE user SET authentication_string = password('foss12345') WHERE user = 'foss';
FLUSH PRIVILEGES;
नोट: यह विधि केवल MySQL के पुराने संस्करणों के साथ काम करती है। इसलिए, यदि आपके पास नए या नवीनतम MySQL संस्करण हैं, तो अन्य विधियों पर जाएं।
सेट पासवर्ड स्टेटमेंट का उपयोग करके उपयोगकर्ता खाता पासवर्ड बदलना
यदि आप किसी अन्य खाते का पासवर्ड बदलना चाहते हैं, तो आपके पास अद्यतन विशेषाधिकार होना चाहिए। कथन निम्नलिखित प्रारूप में उपयोगकर्ता खाते का उपयोग करता है:उपयोगकर्ता नाम @ लोकलहोस्ट
FLUSH PRIVILEGES का उपयोग करके MySQL डेटाबेस के रेंट टेबल से विशेषाधिकारों को पुनः लोड करने की आवश्यकता नहीं है। SET PASSWORD स्टेटमेंट का उपयोग करके यूजर अकाउंट (foss) का पासवर्ड बदलने के लिए, निम्नलिखित स्टेटमेंट का उपयोग करें:
SET PASSWORD FOR 'foss'@'localhost' = PASSWORD('foss12345');के लिए पासवर्ड सेट करें
यदि आप MySQL संस्करण 5.7.6 या उच्चतर का उपयोग कर रहे हैं, तो उपरोक्त कथन बहिष्कृत है और भविष्य के रिलीज़ में काम नहीं करेगा। इसके बजाय, निम्नलिखित कथन का प्रयोग करें;
SET PASSWORD FOR 'foss'@'localhost' = 'foss12345';
ALTER USER स्टेटमेंट का उपयोग करके उपयोगकर्ता खाता पासवर्ड बदलना
MySQL ALTER USER स्टेटमेंट का उपयोग करता है, जिसमें क्लॉज की पहचान की गई है। ऐसा करने के लिए, आप निम्न सिंटैक्स का उपयोग करते हैं:
ALTER USER 'foss'@'localhost' IDENTIFIED BY 'foss12345';
आपको MySQL रूट खाता पासवर्ड रीसेट करने की आवश्यकता हो सकती है। ऐसा करने के लिए, आप ज़बरदस्ती रोक सकते हैं और फिर अनुदान तालिका सत्यापन का उपयोग किए बिना MySQL डेटाबेस सर्वर को पुनरारंभ कर सकते हैं।
निष्कर्ष
इस लेख में MySQL उपयोगकर्ता प्रबंधन के सभी पहलुओं को व्यापक रूप से शामिल किया गया है। हमें विश्वास है कि यह आपको आपकी समस्याओं के समाधान प्रदान करने के लिए पर्याप्त विस्तृत है। यदि आप MySQL का उपयोग करने वाले उपयोगकर्ताओं को दिखाते समय त्रुटियों या कठिनाइयों का सामना करते हैं, तो कृपया सहायता के लिए टिप्पणी अनुभाग के माध्यम से संपर्क करें। पढ़ने के लिए धन्यवाद।