11

के लिए एसक्यूएल सर्वर (विंडोज प्रमाणीकरण बनाम एसक्यूएल सर्वर प्रमाणीकरण) को जोड़ने का सबसे अच्छा तरीका है मेरे पास डेटाबेस और एक साइट प्रमाणीकरण है। यह वीएस -2008 के साथ ठीक काम कर रहा है। इस बार, मैं "Trusted_connection = True" का उपयोग कर रहा हूं। लेकिन जब इसे ब्राउज़र से बाहर या सीधे से खोला जाता है तो मुझे त्रुटि मिल रही है "उपयोगकर्ता के लिए लॉग इन विफल 'एनटी प्राधिकरण \ अनौपचारिक लॉगऑन'।एएसपीनेट ऐप

मुझे पता है कि यह अनुमति के कारण है। एसक्यूएल सर्वर विंडोज प्रमाणीकरण पर आधारित है।

  • SQL सर्वर कनेक्ट करने के लिए उपयोगकर्ता को प्रबंधित करने का सबसे अच्छा तरीका क्या है?
  • क्या मुझे SQL सर्वर प्रमाणीकरण सक्षम करना चाहिए?

मुझे बताएं कि ऐसा करने के लिए क्या करना है जिससे उत्पादन महसूस हो और तैनाती के दौरान कोई समस्या न हो।

नोट: डोमेन सर्वर पर SQL सर्वर स्थापित है।

+0

SQL सर्वर का ** संस्करण ** क्या है? 2000, 2005, 2008 ?? –

+0

एसक्यूएल सर्वर 2005 – Brij

उत्तर

10

साइट प्रमाणीकरण के पास एएसपी और एसक्यूएल के बीच प्रमाणीकरण के साथ कुछ लेना देना नहीं है। 'फॉर्म प्रमाणीकरण' वास्तव में सच्चे प्रमाणीकरण का एक रूप नहीं है, एएसपी.Net एप्लिकेशन के लिए केवल एक भूमिका और सदस्यता है, जो सुरक्षा बुनियादी ढांचे से संबंधित नहीं है।

जब आप विजुअल स्टूडियो से अपनी साइट चलाते हैं तो आप अपने खाते के तहत विजुअल स्टूडियो वेब सर्वर लॉन्च कर रहे हैं, और यह वेब सर्वर आपके प्रमाण पत्र के तहत चल रहा है, क्योंकि एनटीएलएम/केर्बेरोस का उपयोग कर SQL सर्वर को प्रमाणित करेगा।

जब आप ब्राउज़र से साइट पर जाते हैं, तो आपकी साइट आईआईएस एप्लिकेशन पूल से चल रही एप्लिकेशन पूल की पहचान के साथ चल रही है, जो आमतौर पर IUSER _.. नामक स्थानीय उपयोगकर्ता है। यह स्थानीय उपयोगकर्ता, SQL के साथ प्रमाणीकरण करते समय NTLM/Kerberos का उपयोग कर सर्वर अज्ञात उपयोगकर्ता के रूप में प्रमाणित होगा, क्योंकि स्थानीय खाते का SQL सर्वर होस्ट करने वाले दूरस्थ मशीन/डोमेन पर कोई अर्थ नहीं है।

समाधान एक उपयोगकर्ता को एप्लिकेशन पूल पहचान को बदलने का है जो SQL सर्वर के साथ ठीक प्रमाणीकृत कर सकता है। इसके लिए, आईआईएस होस्टिंग मशीन को SQL सर्वर की होस्ट मशीन (या एक डोमेन जो SQL सर्वर होस्ट मशीन डोमेन पर भरोसा करता है) के समान डोमेन में शामिल होना चाहिए और एप्लिकेशन पूल पहचान को इस डोमेन से किसी खाते में बदला जाना चाहिए। तो डोमेन FOO में शामिल करता है, तो SQL सर्वर मशीन एक मशीन पर चलता है, तो:

  • यकीन है कि आईआईएस मशीन फू को
  • foo \ MyWebApp एक डोमेन उपयोगकर्ता
  • एप्लिकेशन पूल बदलाव में शामिल हो गए है foo \ MyWebApp को पहचान

विकल्प foo \ MyWebApp को foo \ MyWebApp के लिए एक एसक्यूएल लॉगिन जोड़ने

  • एसक्यूएल में आवश्यक अनुमति देना SQL प्रमाणीकरण का उपयोग करने के कई कारणों से खराब है (वेब ​​में पासवर्ड का खुलासा करने की क्षमता।विन्यास, तार पर प्रमाणीकरण के दौरान पासवर्ड का पर्दाफाश करने की क्षमता)। यदि आईआईएस होस्टिंग मशीन डोमेन में शामिल नहीं है तो आप दर्पण खातों (आईआईएस होस्ट और एसक्यूएल होस्ट दोनों पर समान नाम और पासवर्ड वाले स्थानीय खाते) का उपयोग करें, लेकिन यह भी त्रुटिपूर्ण है: केर्बेरोस के साथ काम नहीं कर सकता, खाता पासवर्ड है दो मेजबानों आदि पर सिंक में रखा जाना चाहिए

  • 2

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

    यहां how to do that के बारे में एक लेख है।

    2

    डोमेन में एक प्रबंधित सेवा खाता बनाएं जहां SQL सर्वर मशीन और वेब सर्वर (आईआईएस) मशीन दोनों संबंधित हैं या भरोसा करते हैं। फिर प्रबंधित सेवा खाते पर वेब सर्वर का एप्लिकेशन पूल चलाएं। प्रबंधित सेवा खाते का उपयोग कर एक SQL सर्वर लॉगिन बनाएँ। प्रबंधित सेवा खाते बनाने के बारे में अधिक जानकारी के लिए निम्न तकनीक पोस्ट पढ़ें;

    http://technet.microsoft.com/en-us/library/dd548356(v=ws.10).aspx