SQL सर्वर लॉगऑन के रूप में IIS 7 AppPool पहचान जोड़ें


233

मैं एक IIS 7 वेबसाइट को इंटीग्रेटेड पाइपलाइन मोड के AppPool के साथ चला रहा हूं । AppPools NetworkService, आदि के तहत नहीं चलता है। पहचान (उद्देश्य से), लेकिन अपनी खुद की AppPool Identitiy (IIS AppPool \ MyAppPool) का उपयोग करता है।

यह एक तथाकथित सेवा खाता या आभासी खाता है। (एक उपयोगकर्ता खाता, जो पूर्ण खाता नहीं है ...)

मैं इस सेवा खाते (IIS AppPool \ MyAppPool) को अपने SQL सर्वर 2008 एक्सप्रेस (मिश्रित प्रमाणीकरण मोड में) से कनेक्ट करने की अनुमति देना चाहता हूं।

जबकि SQL सर्वर कोई भी सामान्य उपयोगकर्ता खाता जोड़ सकता है, IIS AppPool \ MyAppPool वर्चुअल खाता वैध लॉगऑन में नहीं जोड़ा जा सकता (SQL सर्वर कहता है, कि खाता नहीं मिल सकता है)।

क्या कोई ट्रिक है, कुछ भी जो मुझे वर्चुअल खातों को काम करने के लिए सक्षम करने की आवश्यकता है? (w3wp.exe प्रक्रिया टास्कमार्ग के अनुसार इस पहचान के तहत चलती है, लेकिन मैं NTFS सुरक्षा में खाते का उपयोग नहीं कर सकता ...)

आपकी सहायताके लिए धन्यवाद!

जवाबों:


380

"IIS APPPOOL \ AppPoolName" काम करेगा, लेकिन जैसा कि पहले उल्लेख किया गया है, यह एक मान्य AD नाम प्रतीत नहीं होता है, इसलिए जब आप "उपयोगकर्ता या समूह का चयन करें" संवाद बॉक्स में इसे खोजते हैं, तो यह दिखाई नहीं देगा (वास्तव में) , यह उसे मिल जाएगा, लेकिन यह उसके वास्तविक सिस्टम अकाउंट के बारे में सोचेगा, और वह इसे इस तरह से व्यवहार करने की कोशिश करेगा ... जो काम नहीं करेगा, और आपको इसके बारे में त्रुटि संदेश देगा जो नहीं मिल रहा है)।

मैंने इसे कैसे काम किया है:

  1. SQL सर्वर प्रबंधन स्टूडियो में, सुरक्षा फ़ोल्डर (डेटाबेस, सर्वर ऑब्जेक्ट्स, आदि फ़ोल्डर के समान स्तर पर सुरक्षा फ़ोल्डर देखें ... प्रत्येक व्यक्तिगत डेटाबेस के भीतर सुरक्षा फ़ोल्डर नहीं)
  2. लॉगिन पर राइट क्लिक करें और "नया लॉगिन" चुनें
  3. लॉगिन नाम फ़ील्ड में, IIS APPPOOL \ YourAppPoolName टाइप करें - खोज पर क्लिक न करें
  4. आपको जो भी अन्य मान पसंद हैं उन्हें भरें (जैसे, प्रमाणीकरण प्रकार, डिफ़ॉल्ट डेटाबेस, आदि)
  5. ओके पर क्लिक करें

जब तक AppPool नाम वास्तव में मौजूद है, तब तक लॉगिन अब बनाया जाना चाहिए।


4
एक पुरानी पोस्ट को फिर से शुरू करने के लिए क्षमा करें, लेकिन क्या किसी को पता है कि ऐसा करने से लाइव वातावरण में कोई सुरक्षा निहितार्थ है?
डोबर्ट

34
आश्चर्यजनक रूप से सहायक, फिर भी मन-उड़ाने वाला (और क्रैपीली) माइक्रोसॉफ्टियन।
इवान नागले

16
वाह। चरण 3 में "खोज पर क्लिक न करें" से फर्क पड़ता है (?)
जेडीजा

16
यदि SQL सर्वर आवृत्ति किसी अन्य सर्वर पर है, तो यह विफल नहीं होगा? उदाहरण के लिए - कैसे करता है SQL1के बारे में स्थानीय / आभासी पता IIS AppPool\MyAppPoolपर WEB1?
one.beat.consumer

3
क्या आपका वेब सर्वर और SQL सर्वर अलग-अलग मशीनों पर हैं, तो क्या कोई समाधान है ?? !! मैं लॉगिन पा सकता हूं, लेकिन मैं नई SQL लॉगिन नहीं बना सकता। (अगर मैं एक चेक नाम नहीं करता ... यह अभी भी काम नहीं करता है)
डैन बी

63
CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];

1
अच्छा - जब तक कि स्वीकृत उत्तर सही नहीं है - मैं खुद को ऐसी स्थिति में लाने में कामयाब रहा, जहां प्रबंधन स्टूडियो इतना कच्चा TSQL समाधान काम नहीं कर रहा था, जिसकी मुझे आवश्यकता थी।
एंड्रयू पैटरसन

4
मेरे जैसे नॉब्स पर ध्यान दें: इस क्वेरी को उस डेटाबेस के विरुद्ध निष्पादित करना सुनिश्चित करें जिसे आप IIS ऐप पूल के साथ एक्सेस करना चाहते हैं, दूसरा स्टेटमेंट डेटाबेस स्तर पर है। आपको उपयोगकर्ता को कुछ डेटाबेस भूमिकाओं का सदस्य बनाने और स्कीमा (जैसे) पर उसे अनुमति देने की आवश्यकता हो सकती है dbo
मारियोडीएस

एक बार जब मुझे पता चला कि SSMS GUI के माध्यम से IIS APPPOOL लॉगिन जोड़ना संभव नहीं है, तो मैंने आपकी स्क्रिप्ट चलाई। धन्यवाद! यह संभव हो गया - SSMS 18 में नहीं! मुझे लगता है कि अब यह "फीचर" है
MC9000

6

यदि आप मशीनों के पार जा रहे हैं, तो आपको या तो नेटवर्क सेवा, स्थानीय प्रणाली, एक डोमेन खाता, या एक SQL 2008 R2 (यदि आपके पास है) का उपयोग करने की आवश्यकता है, तो प्रबंधित सेवा खाता (जो कि अगर आपके पास इस तरह का बुनियादी ढांचा है तो मेरी प्राथमिकता है) । आप उस खाते का उपयोग नहीं कर सकते जो सक्रिय निर्देशिका डोमेन के लिए दृश्यमान नहीं है।


6

वर्चुअल खातों (NT Service \ MyService और IIS AppPool \ MyAppPool) का उपयोग करने वाली साइड नोट प्रक्रियाओं के रूप में "नेटवर्क्स सर्विस" खाते के तहत अभी भी चल रहे हैं क्योंकि यह पोस्ट http://www.adopenstatic.com/cs/blogs/en पर बताती है संग्रह / 2008/01/29 / 15759.aspx । फर्क सिर्फ इतना है कि इन प्रक्रियाओं कर रहे हैं के सदस्यों "NT सेवा \ MyService" या "IIS AppPool \ MyAppPool" समूहों में से (के रूप में इन वास्तव में समूहों और कर रहे हैं नहीं उपयोगकर्ता)। यही कारण है कि प्रक्रियाएँ नेटवर्क पर प्रमाणित होती हैं क्योंकि मशीन उसी तरह जैसे नेटवर्क सेवा खाता करता है।

पहुँच सुरक्षित करने का तरीका इस खाते पर निर्भर नहीं है कि नेटवर्क सेवा विशेषाधिकार नहीं हैं, लेकिन विशेष रूप से "NT Service \ MyService" या "IIS AppPool \ MyAppPool" को और अधिक अनुमतियाँ देने और यदि आवश्यक हो तो "उपयोगकर्ता" के लिए अनुमतियाँ निकालने के लिए नहीं है।

यदि किसी के पास अधिक सटीक या विरोधाभासी जानकारी है तो कृपया पोस्ट करें।



2

यह वही हो सकता है जिसे आप ढूंढ रहे हैं ...

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

मैं एक सीमित अधिकार डोमेन उपयोगकर्ता पर विचार करने के लिए लंबी अवधि की सलाह भी दूंगा, जो आप एक साइलो मशीन के परिदृश्य में ठीक काम कर रहे हैं, लेकिन यदि आप DB सर्वर के लिए किसी अन्य मशीन पर जाते हैं तो आपको बदलाव करने होंगे।


0

मुझे यह परीक्षण और त्रुटि के माध्यम से पता चला ... कवच में असली झंकार Configuration Editorवेबसाइट में आईआईएस में एक छोटी ज्ञात सेटिंग थी

Section: system.webServer/security/authentication/windowsAuthentication

From: ApplicationHost.config <locationpath='ServerName/SiteName' />

कहा जाता है useAppPoolCredentials(जो Falseडिफ़ॉल्ट रूप से सेट है। इसे सेट करें Trueऔर जीवन फिर से महान हो जाता है !!! आशा है कि यह अगले आदमी के लिए दर्द को बचाता है ...।

यहां छवि विवरण दर्ज करें


मैंने उसी प्रक्रिया का पालन किया, लेकिन समस्या हल नहीं हुई। आपने कुछ और भी किया होगा, क्या आप कृपया साझा कर सकते हैं?
आरएसबी

@RSB - क्या आपने अन्य सभी चरणों का पालन किया है? क्या आपने ऐपपूल सेट किए हैं, और उन्हें उन फ़ाइलों को अनुमति दें जहां आपकी वेबसाइट स्थित है? क्या आपने SQL सर्वर में अनुमतियों के साथ लॉगिन के रूप में सर्वर का नाम जोड़ा है? क्या आपने अनुमतियों के साथ अपने SQL सर्वर के लिए ऐपपूल बनाया है? क्या आपने WindowsAuthentication का उपयोग करने के लिए IIS को संशोधित किया है? आपको क्या त्रुटियाँ हो रही हैं? क्या यह आपके देव वातावरण में काम करता है और उत्पादन नहीं?
दान बी

मैंने ऐपपूल सेट किया है, लेकिन उन्हें उन फ़ाइलों को अनुमति कैसे दें जहां वेबसाइट स्थित है? SQL सर्वर के लिए अनुमतियों के साथ लॉगिन के रूप में सर्वर का नाम कैसे जोड़ें? मैंने अनुमतियों के साथ SQL सर्वर में ऐपपूल को भी जोड़ा। IIS को WindowsAuthentocation. उपयोग करने के लिए कैसे संशोधित किया जाए। यह मेरे देव वातावरण में काम करता है जब IIS और sql सर्वर एक ही मशीन पर होते हैं, लेकिन यह एरर-सिस्टम देता है ।ComponentModel.Win32Exception: IIS और Sql सर्वर के अलग-अलग मशीन में होने पर प्रवेश निषेध त्रुटि। कृपया सुझाव दे।
RSB

यदि आप मुझे अपना ईमेल देते हैं, तो मैं आपको एक दस्तावेज़ भेजूँगा, जो मैंने यह सब करने के लिए बनाया है .... यहाँ इसे जोड़ने के लिए बहुत अधिक बलगम है ...
Dan B

@RSB मैंने आपको एक ईमेल भेजा है। शुभ लाभ।
दान बी।

0

मेरे मामले में समस्या यह थी कि मैंने Visual Studio / Episerver एक्सटेंशन का उपयोग करके स्क्रैच से MVC मिश्र धातु का नमूना प्रोजेक्ट बनाना शुरू कर दिया और स्थानीय दृश्य स्टूडियो iis एक्सप्रेस का उपयोग करते समय इसे ठीक किया। हालाँकि यह डिफ़ॉल्ट रूप से स्थानीय डेटाबेस के लिए एसक्यूएल डेटाबेस को इंगित करता है और जब मैंने साइट को स्थानीय आईआईएस में तैनात किया तो उसने कुछ त्रुटियों को शुरू कर दिया जो मैंने हल किए थे: 1. स्थानीय साइट url बाइंडिंग C: / Windows / System32 / ड्राइवरों / के लिए etc / मेजबान 2. तब Application.config को संपादित करके, दृश्य स्टूडियो का उपयोग करते हुए साइट चलाते समय स्क्रीन के बॉटन राइट कोने में IIS एक्सप्रेस पर राइट क्लिक करके फ़ाइल स्थान पाया और स्थानीय iis url के लिए बाइंडिंग जोड़ा। 3. अंत में मैं "डेटाबेस त्रुटियों का उपयोग करने में असमर्थ" के साथ फंस गया था

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