SQL सर्वर में उपयोगकर्ता और लॉगिन के बीच अंतर


178

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

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

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

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

जवाबों:


202

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

एक "उपयोगकर्ता" एक एकल प्रवेश में एक प्रवेश प्रविष्टि देता है।

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

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


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

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

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

लेकिन अब MSDN एक प्रकार के उपयोगकर्ता "डेटाबेस पर प्रमाणित करने वाले उपयोगकर्ता" (अपने डेटाबेस को अधिक पोर्टेबल बनाने में मदद करने के लिए अनुशंसित) की सिफारिश करता है। लिंक: docs.microsoft.com/en-us/sql/t-sql/statements/… क्या यह पारंपरिक उपयोगकर्ता प्रकार से बेहतर है?
शीन

32

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


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

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

डेटाबेस को पुनर्स्थापित करने के बाद केवल परिवर्तन क्यों नहीं किया जाता है?
हेयूड

1
वहाँ अधिक जानकारी के लिए SQLAuthority में इस विषय पर एक अच्छा 60 दूसरा वीडियो है blog.sqlauthority.com/2014/07/16/...
टॉम Resing

1
@HeyJude मतलब सर्वर ऑथेंटिकेशन से चिंतित है अगर डेटाबेस लॉगिन और यूजर सेपरेशन के लिए नहीं है तो कुछ करना होगा।
ज़ैद खान

25

मुझे लगता है कि Laurentiu Cristofor द्वारा इस विषय के बारे में एक बहुत अच्छा MSDN ब्लॉग पोस्ट है :

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

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

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

उपयोगकर्ताओं को लॉगइन करने के लिए मैप किया जाता है और लॉगिंग और उपयोगकर्ताओं के सिड संपत्ति द्वारा मैपिंग व्यक्त की जाती है। एक डेटाबेस में एक उपयोगकर्ता के लिए लॉगिन मानचित्र यदि उनके SID मान समान हैं। इसलिए लॉगिन के प्रकार पर निर्भर करते हुए, हम इसलिए उपयोगकर्ताओं के वर्गीकरण का उपयोग कर सकते हैं जो लॉगिन के लिए उपरोक्त वर्गीकरण की नकल करते हैं; इसलिए, हमारे पास SQL ​​उपयोगकर्ता और Windows उपयोगकर्ता हैं और बाद वाली श्रेणी में Windows उपयोगकर्ता लॉगिन के लिए मैप किए गए उपयोगकर्ता हैं और उपयोगकर्ताओं के विंडोज श्रेणी लॉगिन में मैप किए गए हैं।

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

यह पूरी पोस्ट की लिंक है।


इस ब्लॉग पोस्ट को नीचे लिया गया है :(
स्टीवन श्लांसकर

23

संक्षेप में,

लॉगिन में सर्वर की पहुंच होगी।

तथा

उपयोगकर्ताओं के पास डेटाबेस की पहुंच होगी।


6

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

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

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

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


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

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.