MySQL उपयोगकर्ता MySQL सर्वर के उपयोगकर्ताओं के लिए ही हैं। इन उपयोगकर्ताओं को केवल सर्वर व्यवस्थापक या उन अनुप्रयोगों द्वारा उपयोग के लिए आरक्षित किया जाना चाहिए जिन्हें चलाने के लिए उपयोगकर्ता की आवश्यकता होती है (प्रत्येक एप्लिकेशन के लिए एक अलग उपयोगकर्ता दें)। MySQL उपयोगकर्ता प्रबंधन प्रणाली को विशेष रूप से सर्वर पर चल रहे डेटाबेस तक नियंत्रित पहुंच को समायोजित करने के लिए बनाया गया था, न कि वेब एप्लिकेशन में उपयोगकर्ता प्रमाणीकरण का आधार। इसके अतिरिक्त, किसी भी डेटाबेस परिवर्धन (और उपयोगकर्ता निर्माण) के लिए आपको उस एप्लिकेशन को चलाने वाले उपयोगकर्ता की आवश्यकता होगी जिसके पास डेटाबेस पर वे अनुमतियाँ हैं। जबकि स्वयं कोई प्रत्यक्ष भेद्यता नहीं है, यदि कोई आपके PHP सिस्टम में पाया जाता है, तो यह आपके जीवन को पूरी तरह से खराब कर सकता है।
आप कभी नहीं चाहते हैं कि आपका एप्लिकेशन अतिरिक्त डेटाबेस या (उस मामले के लिए टेबल) के साथ आपके MySQL डेटाबेस नेमस्पेस को प्रदूषित करने में सक्षम हो। आपके एप्लिकेशन के संचालन के दौरान, यह केवल कम से कम विशेषाधिकार का सिद्धांत , जिसका अर्थ है कि आप अपने डेटाबेस उपयोगकर्ता को केवल वही करने के लिए पहुँच प्रदान करेंगे जिसकी उसे आवश्यकता है और इससे अधिक कुछ नहीं।
जहां तक पासवर्ड हैशिंग की बात है, bcrypt by PHP's crypt() फंक्शन का उपयोग करें। . उसे डेटाबेस में उपयोगकर्ता तालिका में संग्रहीत करें।