MySQL एक परिष्कृत एक्सेस कंट्रोल और विशेषाधिकार प्रणाली लागू करता है जो क्लाइंट ऑपरेशन्स के लिए व्यापक एक्सेस नियम बनाने और अनधिकृत क्लाइंट्स को प्रभावी ढंग से रोकने की अनुमति देता है।
दो-चरणीय एक्सेस कंट्रोल
1. कनेक्शन सत्यापन (Connection Verification)
- क्लाइंट के पास वैध यूजरनेम और पासवर्ड होना चाहिए।
- क्लाइंट का होस्ट MySQL ग्रांट टेबल्स में दर्ज होस्ट से मेल खाना चाहिए।
- विफल होने पर:
Access denied for user '...'@'...'त्रुटि।
2. अनुरोध सत्यापन (Request Verification)
- कनेक्शन स्थापित होने के बाद, प्रत्येक स्टेटमेंट के लिए जांच होती है।
- MySQL जांचता है कि क्लाइंट के पास वह स्टेटमेंट निष्पादित करने के लिए पर्याप्त विशेषाधिकार हैं या नहीं।
- विशेषाधिकार जांच डेटाबेस, टेबल, और कॉलम स्तर पर लचीले ढंग से होती है।
विशेषाधिकार पदानुक्रम
- ग्लोबल (
mysql.user) — सभी डेटाबेस - डेटाबेस (
mysql.db) — विशिष्ट डेटाबेस - टेबल (
mysql.tables_priv) — विशिष्ट टेबल - कॉलम (
mysql.columns_priv) — विशिष्ट कॉलम - रूटीन (
mysql.procs_priv) — स्टोर्ड प्रोसीजर/फंक्शन
सुरक्षा सर्वोत्तम अभ्यास
- कम से कम विशेषाधिकार सिद्धांत: केवल आवश्यक अधिकार दें
- मजबूत पासवर्ड,
%होस्ट से बचें - SSL/TLS कनेक्शन बाध्य करें (
REQUIRE SSL) - नियमित ऑडिट:
SHOW GRANTS,SELECT FROM mysql.user - अनावश्यक अकाउंट्स हटाएं/अक्षम करें