Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL अनधिकृत क्लाइंट्स को डेटाबेस एक्सेस से कैसे रोकता है

MySQL एक परिष्कृत एक्सेस कंट्रोल और विशेषाधिकार प्रणाली लागू करता है जो क्लाइंट ऑपरेशन्स के लिए व्यापक एक्सेस नियम बनाने और अनधिकृत क्लाइंट्स को प्रभावी ढंग से रोकने की अनुमति देता है।

दो-चरणीय एक्सेस कंट्रोल

1. कनेक्शन सत्यापन (Connection Verification)

  • क्लाइंट के पास वैध यूजरनेम और पासवर्ड होना चाहिए।
  • क्लाइंट का होस्ट MySQL ग्रांट टेबल्स में दर्ज होस्ट से मेल खाना चाहिए।
  • विफल होने पर: Access denied for user '...'@'...' त्रुटि।

2. अनुरोध सत्यापन (Request Verification)

  • कनेक्शन स्थापित होने के बाद, प्रत्येक स्टेटमेंट के लिए जांच होती है।
  • MySQL जांचता है कि क्लाइंट के पास वह स्टेटमेंट निष्पादित करने के लिए पर्याप्त विशेषाधिकार हैं या नहीं।
  • विशेषाधिकार जांच डेटाबेस, टेबल, और कॉलम स्तर पर लचीले ढंग से होती है।

विशेषाधिकार पदानुक्रम

  1. ग्लोबल (mysql.user) — सभी डेटाबेस
  2. डेटाबेस (mysql.db) — विशिष्ट डेटाबेस
  3. टेबल (mysql.tables_priv) — विशिष्ट टेबल
  4. कॉलम (mysql.columns_priv) — विशिष्ट कॉलम
  5. रूटीन (mysql.procs_priv) — स्टोर्ड प्रोसीजर/फंक्शन

सुरक्षा सर्वोत्तम अभ्यास

  • कम से कम विशेषाधिकार सिद्धांत: केवल आवश्यक अधिकार दें
  • मजबूत पासवर्ड, % होस्ट से बचें
  • SSL/TLS कनेक्शन बाध्य करें (REQUIRE SSL)
  • नियमित ऑडिट: SHOW GRANTS, SELECT FROM mysql.user
  • अनावश्यक अकाउंट्स हटाएं/अक्षम करें
  1. कमांड लाइन से MySQL डेटाबेस से कैसे कनेक्ट करें? कमांड लाइन से MySQL डेटाबेस से कैसे कनेक्ट करें?

    MySQL कमांड-लाइन क्लाइंट (mysql.exe) से कनेक्ट करें विंडोज कमांड प्रॉम्प्ट से MySQL सर्वर से कनेक्ट करने के लिए mysql क्लाइंट प्रोग्राम का उपयोग करें। चरण-दर-चरण कमांड प्रॉम्प्ट खोलें: Win+R → cmd → Enter MySQL bin डायरेक्टरी में जाएं: cd C:\Program Files\MySQL\MySQL Server 8.0\bin (आपके इंस्टॉल

  1. - MySQL में ORDER BY RAND() LIMIT 1 से यादृच्छिक रिकॉर्ड चुनें

    MySQL में ORDER BY RAND() LIMIT 1 का उपयोग करके टेबल से एक यादृच्छिक पंक्ति चुन सकते हैं। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY RAND() LIMIT 1; उदाहरण 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1581(StudentName) VALUES(Chris), (Bob), (Sam), (Mike), (Carol); 3. यादृच्छिक पंक्ति चुन

  1. - MySQL में वर्तमान डेटाबेस के नाम का उपयोग करके उसे कैसे डिलीट करें?

    वर्तमान डेटाबेस प्राप्त करना वर्तमान डेटाबेस जानने के लिए SELECT DATABASE() फ़ंक्शन का उपयोग करें: select database(); डेटाबेस डिलीट करने का सिंटैक्स डेटाबेस का नाम एक वेरिएबल में स्टोर करके डायनामिक SQL के ज़रिए ड्रॉप करें: set @anyVariableName = database(); select @anyVariableName; set @anyVari