इसे केवल एक उत्तर के रूप में पोस्ट करना क्योंकि यह एक टिप्पणी के लिए बहुत लंबा है, और क्योंकि यह बहुत जल्द अन्य उपयोगकर्ताओं के लिए प्रासंगिक होगा ।
SQL सर्वर 2014 में कुछ नए सर्वर-स्तर की अनुमतियाँ शामिल हैं जो इस प्रकार के परिदृश्य के साथ सहायता करेंगे - उन्हें ऑडिटिंग को ध्यान में रखते हुए डिज़ाइन किया गया था, लेकिन इस प्रकार की आवश्यकता उस बिल को भी फिट करने में लगती है। आप सर्वर-स्तर लॉगिन में निम्नलिखित दो अनुमतियाँ जोड़ सकते हैं:
CONNECT ANY DATABASE
SELECT ALL USER SECURABLES
पूर्व, जैसे यह लगता है, लॉगिन किसी भी डेटाबेस से जुड़ने की अनुमति देता है। इसके बारे में अच्छी बात यह है कि यह भविष्य में बनाए जाने वाले डेटाबेस के लिए भी अनुमति देगा (बशर्ते आप स्पष्ट इनकार सेट नहीं करते हैं, जो आप कुछ उपयोगकर्ता डेटाबेस को इस अनुमति वाले लॉगिन से सुरक्षित कर सकते हैं)। उत्तरार्द्ध लॉगिन को किसी भी डेटाबेस पर पढ़ने के संचालन का संचालन करने की अनुमति देता है, जिनके पास उनकी पहुंच है - इसलिए वे SELECT
तालिकाओं, विचारों, यूडीएफ आदि से कर सकते हैं, लेकिन वे किसी भी UPDATE
ऑपरेशन को करने में सक्षम नहीं होंगे (मैंने यह परीक्षण नहीं किया है यदि यह अनुमति समझता है जब संग्रहीत कार्यविधि DML करता है)। ये संयोजन में बहुत काम करते हैं, यदि आप पूरे सर्वर पर एक लॉगिन विस्तृत-खुली रीड एक्सेस देना चाहते हैं, या अधिक ठीक-ठाक होना चाहते हैं, तो आप CONNECT
कुछ डेटाबेस के लिए पारंपरिक विशेषाधिकार प्रदान कर सकते हैं , और SELECT ALL USER SECURABLES
सही इच्छाशक्तिकेवल उन डेटाबेस के लिए कार्य करें जहां लॉगिन की स्पष्ट पहुंच है।
2014 सुरक्षा परिवर्तन यहाँ प्रलेखित रहे हैं - अच्छी तरह से, आंशिक रूप से; वे डेटाबेस-स्तर की अनुमति के बारे में भूल गए ALTER ANY DATABASE EVENT SESSION
- हालांकि यह यहां प्रासंगिक नहीं है।