2009-07-15 16 views
138

में उपयोगकर्ता और लॉगिन के बीच अंतर मैं हाल ही में SQL सर्वर के कई अलग-अलग क्षेत्रों में चल रहा हूं जो मैं आमतौर पर गड़बड़ नहीं करता हूं। उनमें से एक जिसने मुझे भ्रमित किया है वह लॉग इन और उपयोगकर्ताओं का क्षेत्र है। ऐसा लगता है कि यह एक बहुत ही सरल विषय होना चाहिए ...SQL सर्वर

ऐसा लगता है कि प्रत्येक लॉगिन में केवल 1 उपयोगकर्ता हो सकता है और प्रत्येक उपयोगकर्ता के पास केवल 1 लॉगिन हो सकता है।

एक लॉगिन कई तालिकाओं से जोड़ा जा सकता है जिससे उपयोगकर्ता को कई तालिकाओं से जोड़ दिया जा सके।

तो मेरा सवाल यह है कि यहां तक ​​कि लॉगिन और उपयोगकर्ता भी क्यों है? वे एक में बहुत ज्यादा लगते हैं। मतभेद क्या हैं, या यह क्या है कि मुझे याद आ रही है?

उत्तर

162

एक "लॉगिन" सर्वर में मुख्य प्रविष्टि प्रदान करता है।

एक "उपयोगकर्ता" एक ही डाटाबेस में लॉगिन प्रविष्टि प्रदान करता है।

एक "लॉगिन" कई उपयोगकर्ताओं (एक प्रति डेटाबेस) से जुड़ा जा सकता है।

उपर्युक्त वस्तुओं में से प्रत्येक को अपने स्तर पर अनुमतियां दी जा सकती हैं। प्रत्येक

    के लिए स्पष्टीकरण निम्नलिखित लेख देखें
  • Principals
  • Database Users
+6

आह कोई आश्चर्य नहीं कि मुझे कोई अंतर नहीं मिला। मैं बस 1 डेटाबेस के साथ काम कर रहा था। धन्यवाद। – corymathews

+1

यह उत्तर मौलिक रूप से सही है, लेकिन जैसा कि मैं समझता हूं कि एक विशेष उपयोगकर्ता को वास्तव में उस विशेष सर्वर पर उपलब्ध एक से अधिक डेटाबेस तक पहुंच प्रदान की जा सकती है। तो लॉगिन-टू-यूजर 1-टू-1 मैपिंग है, लेकिन उपयोगकर्ता-टू-डेटाबेस 1-से-कई मैपिंग है। –

+0

@coreymathews: "बॉय मीट्स वर्ल्ड" में कम समय और किताबों पर अधिक समय! ;)। – MSIS

25

दोनों का एक कारण यह है कि प्रमाणीकरण डेटाबेस सर्वर द्वारा किया जा सकता है, लेकिन प्रमाणीकरण डेटाबेस में स्कॉप्ड किया जा सकता है। इस तरह, यदि आप अपना डेटाबेस किसी अन्य सर्वर पर ले जाते हैं, तो आप हमेशा डेटाबेस सर्वर पर उपयोगकर्ता-लॉगिन संबंध को रीमेप कर सकते हैं, लेकिन आपके डेटाबेस को बदलने की ज़रूरत नहीं है।

+0

क्या आप विस्तृत कर सकते हैं? डेटाबेस के बजाय डेटाबेस सर्वर पर किए जा रहे बदलाव का क्या फायदा है? – HeyJude

+0

कहें कि आप बैकअप और डेटाबेस को पुनर्स्थापित करना चाहते हैं। पुनर्स्थापना अक्सर एक नए सर्वर पर किया जाता है। हो सकता है कि आप किसी पुनर्स्थापन में किसी डेटाबेस में परिवर्तन नहीं करना चाहें। –

+0

डेटाबेस को पुनर्स्थापित करने के बाद ही परिवर्तन क्यों न करें? – HeyJude

18

लघु में,

लॉगिन सर्वर उपयोग होगा।

और

उपयोगकर्ता डेटाबेस का उपयोग करना होगा।

5

मुझे लगता है कि यह अच्छा जवाब के साथ एक बहुत ही उपयोगी सवाल है। बस MSDN Create a Login पेज से मेरे दो सेंट जोड़ने के लिए:

लॉगिन एक सुरक्षा प्रमुख, या इकाई के एक सुरक्षित प्रणाली द्वारा प्रमाणीकृत किया जा सकता है। उपयोगकर्ताओं को SQL सर्वर से कनेक्ट करने के लिए लॉगिन की आवश्यकता है। आप Windows प्रिंसिपल (जैसे एक डोमेन उपयोगकर्ता या Windows डोमेन समूह) के आधार पर लॉगिन बना सकते हैं या आप एक लॉगिन बना सकते हैं जो Windows प्रिंसिपल (जैसे SQL सर्वर लॉगिन) पर आधारित नहीं है।

नोट:
एसक्यूएल सर्वर प्रमाणीकरण का उपयोग करने के लिए, डेटाबेस इंजन मिश्रित मोड प्रमाणीकरण का उपयोग करना होगा। अधिक जानकारी के लिए, एक प्रमाणीकरण मोड चुनें देखें।

सुरक्षा प्रिंसिपल के रूप में, लॉग इन को अनुमतियां दी जा सकती हैं। लॉगिन का दायरा संपूर्ण डाटाबेस इंजन है। SQL सर्वर के उदाहरण पर किसी विशिष्ट डेटाबेस से कनेक्ट करने के लिए, डेटाबेस उपयोगकर्ता को एक लॉगिन मैप किया जाना चाहिए। डेटाबेस के अंदर अनुमतियां डेटाबेस उपयोगकर्ता को दी गई हैं और इनकार कर दी गई हैं, लॉगिन नहीं।अनुमतियां जिनमें SQL सर्वर के पूरे उदाहरण का दायरा है (उदाहरण के लिए, CREATE ENDPOINT अनुमति) को लॉगिन के लिए दिया जा सकता है।

+3

यदि आप उद्धरण में प्रत्येक पैराग्राफ की शुरुआत में '>' डालते हैं तो यह थोड़ा स्पष्ट है, इसलिए इसे उद्धरण के रूप में स्वरूपित किया गया है। – Sam

+1

आपके सुझाव सैम – ilmatte

+0

के लिए धन्यवाद यह बहुत उपयोगी था। हालांकि मैंने उपयोगकर्ताओं और लॉग इन को सही तरीके से स्थापित किया था, सिस्टम को SQL सर्वर लॉगिन प्रमाणीकरण की अनुमति देने के लिए सेट नहीं किया गया था। जब मैं सर्वर लॉग इन करने की अनुमति नहीं दूंगा तो मैं SQL सर्वर लॉग इन क्यों बना सकता हूं! –

15

मुझे लगता है कि वहाँ एक बहुत अच्छी MSDN blog post Laurentiu Cristofor द्वारा इस विषय के बारे में:

पहले महत्वपूर्ण बात यह है एसक्यूएल सर्वर सुरक्षा दो सुरक्षा लोकों शामिल देखते हैं कि है के बारे में समझने की जरूरत है कि - सर्वर और डेटाबेस। सर्वर क्षेत्र में एकाधिक डेटाबेस क्षेत्र शामिल हैं। सभी काम कुछ डेटाबेस के संदर्भ में किया जाता है, लेकिन काम करने के लिए प्राप्त करने के लिए, किसी को पहले सर्वर तक पहुंच की आवश्यकता होती है और फिर डेटाबेस तक पहुंच प्राप्त करने की आवश्यकता होती है।

लॉग इन के माध्यम से सर्वर तक पहुंच प्रदान की जाती है। लॉग इन की दो मुख्य श्रेणियां हैं: SQL सर्वर प्रमाणीकृत लॉगिन और विंडोज प्रमाणीकृत लॉगिन। मैं आम तौर पर इन छोटे से एसक्यूएल लॉगिन और विंडोज लॉगिन के नामों का उपयोग कर इनका संदर्भ दूंगा। विंडोज प्रमाणीकृत लॉग इन या तो विंडोज उपयोगकर्ताओं या विंडोज समूह में मैप किए गए लॉग इन मैप किए जा सकते हैं। इसलिए, सर्वर से कनेक्ट करने में सक्षम होने के लिए, इन प्रकारों या लॉगिनों में से किसी एक के माध्यम से एक्सेस होना चाहिए - लॉग इन सर्वर दायरे तक पहुंच प्रदान करते हैं।

लेकिन लॉगिन पर्याप्त नहीं हैं, क्योंकि आमतौर पर काम डेटाबेस में किया जाता है और डेटाबेस अलग-अलग क्षेत्र होते हैं। डेटाबेस तक पहुंच उपयोगकर्ताओं के माध्यम से प्रदान की जाती है।

उपयोगकर्ताओं को लॉग इन करने के लिए मैप किया गया है और मैपिंग एसआईडी लॉग इन और उपयोगकर्ताओं की संपत्ति द्वारा व्यक्त की जाती है। में उनके एसआईडी मान समान हैं, तो डेटाबेस में उपयोगकर्ता के लिए एक लॉगिन मानचित्र समान हैं। लॉगिन के प्रकार के आधार पर, हम इसलिए उपयोगकर्ताओं का वर्गीकरण कर सकते हैं जो उपरोक्त लॉग इन के लिए वर्गीकरण की नकल करते हैं; इसलिए, हमारे पास एसक्यूएल उपयोगकर्ता और विंडोज उपयोगकर्ता हैं और बाद की श्रेणी में उपयोगकर्ता उपयोगकर्ता विंडोज़ लॉग इन और मैप किए गए उपयोगकर्ताओं को विंडोज समूह लॉग इन में मैप किए गए हैं।

की एक त्वरित अवलोकन के लिए वापस एक कदम लेते हैं: एक लॉगिन पहुँच सर्वर से और आगे एक डेटाबेस तक पहुँच प्राप्त करने प्रदान करता है, कि उपयोगकर्ता लॉगिन करने के लिए मैप किया गया डेटाबेस में मौजूद होना चाहिए।

that's the link पूर्ण पोस्ट में।