मैं उन सभी वर्षों से इससे जूझ रहा था, इसलिए यहाँ वह उत्तर है जो काश मेरे पास होता:
आम तौर पर, यह जटिल चीजें हैं, और एक मूल एप्लिकेशन के लिए शीर्षक उत्तर है:उपयोगकर्ताओं की अनुमतियों को आपके द्वारा किए गए एपीआई कॉल में PHP कोड द्वारा प्रबंधित किया जाएगा, और एक डीबी उपयोगकर्ता ठीक है। डेटा की पवित्रता के उल्लंघन को रोकने के लिए, सभी उपयोगकर्ताओं को आम तौर पर ऐप देव के लिए डीबी के साथ सीधे बातचीत करने से बचना चाहिए।
सुरक्षा और प्रतिबंधों के बारे में सोचना अच्छा है, लेकिन सादगी राजा है - आप इसे जितना जटिल बनाते हैं, इसे बनाए रखना उतना ही कठिन होता है, और इसलिए कोने के मामलों को याद करना आसान होता है।
जब भी मैं एक नया वेब उपयोगकर्ता पंजीकृत करता हूं, तो क्या मुझे एक नया डेटाबेस उपयोगकर्ता बनाना चाहिए?
नहीं, डेटाबेस उपयोगकर्ता अपने विशेषाधिकारों से अलग होते हैं। नतीजतन, सभी उपयोगकर्ता अलग-अलग विशेषाधिकार स्तरों वाले समूहों के समूह के अनुरूप होते हैं। डेटाबेस खाते वेब खातों से अलग होते हैं - डेटाबेस से कनेक्ट करना पर्दे के पीछे किया जाता है और इसका उपयोग किए जा रहे वेब खाते से कोई लिंक नहीं होता है।
डीबी से सीधे जुड़ने वाली प्रत्येक सेवा के लिए एक डीबी खाता बनाना एक अच्छा तरीका होगा। विशाल बहुमत के लिए, यह एक सेवा होगी, आपका वेब सर्वर। यदि एप्लिकेशन बढ़ता है और ऑडिट, माइक्रोसर्विसेज, सुरक्षा, IOT जैसी सेवाओं को अलग-थलग कर देता है, तो संभवतः उनके पास अपने खाते होने चाहिए।
क्या वेबसाइट के सभी उपयोगकर्ताओं को CRUD विशेषाधिकार देना सुरक्षित है?
सवाल गुमराह करने वाला है - आप सीआरयूडी को डीबी खाते में दे दें, जिसकी जरूरत होगी। PHP के अंदर प्रबंधित CRUD अनुमतियों के लिए, यह वास्तव में आपके ऐप और विशिष्ट समापन बिंदुओं पर निर्भर करता है। उदाहरण के लिए, आप शायद नहीं चाहते कि आपके सभी उपयोगकर्ता उपयोगकर्ता रिकॉर्ड को हटा सकें, इसलिए आपके PHP कोड को ऐसा होने से रोकना चाहिए।
डीबी उपयोगकर्ता कितने प्रकार के होने चाहिए?
संख्या आपके डेटाबेस पर निर्भर करती है। आम तौर पर, 4 समूह
- डेटाबेस व्यवस्थापक
- डेटाबेस डिजाइनर
- आकस्मिक अंतिम उपयोगकर्ता
- मूल अंतिम उपयोगकर्ता
हालाँकि, यदि आप तालिका स्तर के विशेषाधिकार देना चाहते हैं तो आपको थोड़ा और शाखा लगाने की आवश्यकता हो सकती है। यह सुझाव देगा कि 10 DB खाते काफी छोटी राशि है, कई सौ के अधिक होने की संभावना है ।
अधिक विशेषाधिकार, अधिक स्थान की आवश्यकता होती है, लेकिन यह काफी सूक्ष्म विचार है, और प्रदर्शन में बड़ी भूमिका नहीं निभानी चाहिए। जटिलता अगला मुद्दा है - ध्यान से सोचें कि आप वास्तव में कितने समूहों और क्रमपरिवर्तनों का परीक्षण करना चाहते हैं। उपरोक्त प्रश्न के मामले में, मैं एक शौकिया डेवलपर था - डीबीए के रूप में एक खाता शायद ठीक है। यदि कई उपयोगकर्ता सीधे डीबी तक पहुंच रहे थे (पहले से ही शायद ऐप देव के लिए एक बुरा विचार है), तो शायद उन्हें अलग-अलग अनुमतियों के साथ विभाजित कर दें।
एक साधारण ऐप के लिए टेबल स्तर की अनुमतियों के बारे में बात करना बहुत अधिक है!