हमने एक सर्वर लॉगिन और डेटाबेस उपयोगकर्ता जोड़ा है जो निम्न स्क्रिप्ट का उपयोग करके SQL समूह के लिए एक SQL 2008 R2 उदाहरण के लिए एक विंडोज ग्रुप को मैप करता है, नाम के लिए नाम बदलकर:
USE master
go
CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
go
USE AppDb
go
CREATE USER [DOMAIN\AppUsers] FOR LOGIN
[DOMAIN\AppUsers]
go
EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers'
go
जब DOMAIN \ User1 खाता ऐप पर लॉग इन होता है, तो dbo स्कीमा में User1 क्वेरीज़ ठीक होती हैं क्योंकि User1 DOMAIN \ AppUsers का सदस्य होता है, लेकिन यह ऐप उपयोगकर्ता को टेबल भी बनाने की अनुमति देता है। स्कीमा निर्दिष्ट किए बिना इन तालिकाओं को बनाते समय , SQL सर्वर निम्न कार्य करता है:
- AppDb में 'DOMAIN \ User1' उपयोगकर्ता बनाता है जो उदाहरण के लिए SSMS \ Security \ Logins में सूचीबद्ध नहीं 'DOMAIN \ User1' लॉगिन का उपयोग करता है।
- AppDb में 'DOMAIN \ User1' स्कीमा बनाता है।
- नए 'DOMAIN \ User1' स्कीमा का उपयोग करके उन तालिकाओं को बनाता है।
मैं इन परिणामों से पूरी तरह से प्रभावित हूं। यहाँ मेरे सवाल हैं:
- मुझे उम्मीद है कि अतिरिक्त ऑब्जेक्ट बनाने के बजाय तालिका निर्माण विफल हो जाएगा। क्या कोई मुझे ऑनलाइन पुस्तक के उस भाग की ओर संकेत कर सकता है जो यह बताता है?
- यदि सर्वर 'DOMAIN \ AppUsers' स्कीमा क्यों नहीं बनाता है और यदि स्कीमा जोड़ने जा रहा है तो उस स्कीमा में नई तालिकाएँ नहीं जोड़ें?
- इसके अलावा, डेटाबेस SSMS \ Security \ Logins में नहीं दिखाया गया लॉगिन का उपयोग कैसे करता है?
- SSMS \ डेटाबेस \ AppDb \ Security \ उपयोगकर्ता में 'DOMAIN \ User1' उपयोगकर्ता को देखते हुए, उपयोगकर्ता आइकन में एक छोटा लाल तीर होता है, जो नीचे इंगित करता है। इसका क्या मतलब है?
हम सिर्फ एक संगठन के भीतर विंडोज प्रमाणीकरण का उपयोग करना शुरू कर रहे हैं जो सरलता के लिए एसक्यूएल प्रमाणीकरण को प्राथमिकता देता है, इसलिए मुझे यकीन है कि मेरा सवाल मतभेदों से अनभिज्ञ होने से है। यह कोड बहुत पहले लिखा गया था जब हमने विंडोज ऑथेंटिकेशन का उपयोग करने पर विचार किया था, इसलिए मुझे यकीन है कि हमें डेटाबेस के मालिक के अलावा किसी और के रूप में विंडोज ऑथेंटिकेशन का उपयोग करने पर लॉग इन करते हुए नए स्कीमा बनाने की अपनी समझ में सुधार करना होगा।
यदि आप नहीं बता सकते हैं, तो मैं SQL प्रमाणीकरण पर विंडोज प्रमाणीकरण के उपयोग के लिए जोर दे रहा हूं। अगर हमें इसकी ठोस समझ नहीं है, तो हम SQL प्रमाणीकरण पर वापस लौटेंगे।