अधिकांश वेब अनुप्रयोगों में, आप सुरक्षा मॉडल को व्यावसायिक तर्क स्तर पर परिभाषित किया जाता है, न कि डेटा स्तर पर।
उदाहरण के लिए, स्टैक ओवरफ़्लो पर किसी पोस्ट को संपादित करने की मेरी क्षमता "पोस्ट" तालिका को पढ़ने/लिखने की मेरी क्षमता से नियंत्रित नहीं होती है - वास्तव में, आप शायद डेटाबेस स्कीमा भी डिज़ाइन नहीं कर सकते हैं जो आपको डेटाबेस-स्तर को लागू करने की अनुमति देगा इस स्तर पर सुरक्षा। इसके बजाय, एक व्यावसायिक तर्क परत है जो मेरे विशेषाधिकारों की तुलना उस क्रिया से करती है जिसे मैं लेने की कोशिश कर रहा हूं (मुझे लगता है); सुरक्षा को व्यावसायिक तर्क स्तर पर लागू किया जाता है।
मैं स्पष्ट रूप से डेटाबेस परत में क्रेडेंशियल्स से गुजरने के लिए लगभग कोई लाभ नहीं देखता - अगर किसी तरह मैं एसओ पोस्ट को संपादित करने के लिए व्यावसायिक तर्क को छोड़ देता हूं, तो डेटाबेस "रीड/राइट" नियंत्रण इसे रोक नहीं पाएगा, और ऑडिटिंग ' वास्तव में आपकी मदद नहीं करता।
मुझे बहुत सारी कमियां दिखाई देती हैं - कम से कम यह तथ्य नहीं कि आप अपने प्राधिकरण तर्क को दो (व्यावसायिक तर्क और डेटाबेस) में विभाजित करेंगे, और अपने व्यावसायिक तर्क परत और डेटाबेस परत में खातों को सिंक्रनाइज़ करने के साथ सभी प्रकार के मनोरंजक विफलता मोड पेश करेंगे (उपयोगकर्ता अपने पासवर्ड, या वेब साइट छोड़कर)। मैं यह कल्पना करना शुरू नहीं कर सकता कि आप यह सब कैसे परीक्षण और डिबग करेंगे - यदि अंतिम उपयोगकर्ता को उनके डेटाबेस विशेषाधिकारों से संबंधित त्रुटि मिलती है तो क्या होता है?