CURRENT_USER() या USER() फ़ंक्शन से वर्तमान उपयोगकर्ता पहचानें
MySQL दो फ़ंक्शन प्रदान करता है जो वर्तमान कनेक्शन के उपयोगकर्ता के बारे में जानकारी देते हैं, लेकिन उनके अर्थ अलग हैं।
CURRENT_USER()
प्रमाणीकरण के लिए उपयोग किया गया खाता लौटाता है (जिससे आप कनेक्ट हुए)।
mysql> SELECT CURRENT_USER();
+----------------+ | CURRENT_USER() | +----------------+ | root@% | +----------------+
USER()
वास्तविक क्लाइंट होस्टनाम के साथ उपयोगकर्ता नाम लौटाता है (आप कहां से कनेक्ट हुए)।
mysql> SELECT USER();
+----------------+ | USER() | +----------------+ | root@localhost | +----------------+
अंतर
| फ़ंक्शन | लौटाता है | उपयोग |
|---|---|---|
CURRENT_USER() | प्रमाणीकरण खाता (user@host पैटर्न) | विशेषाधिकार जांच, DEFINER संदर्भ |
USER() | वास्तविक कनेक्शन (user@actual_host) | ऑडिट, लॉगिंग, कनेक्शन स्रोत |
उदाहरण परिदृश्य
- आप
root@localhostके रूप में कनेक्ट करते हैं लेकिन सर्वर मेंroot@%खाता है →CURRENT_USER()=root@%,USER()=root@localhost - प्रॉक्सी उपयोगकर्ता:
CURRENT_USER()प्रॉक्सी खाता दिखाता है,USER()मूल दिखाता है
अन्य उपयोगी फ़ंक्शन
SELECT SESSION_USER(); -- USER() का समानार्थी SELECT SYSTEM_USER(); -- USER() का समानार्थी SELECT CURRENT_ROLE(); -- सक्रिय भूमिकाएं (MySQL 8.0+)