Sql Server अनुमतियों पर AD सुरक्षा समूह को ताज़ा कैसे करें


12

मैं लघु व्यवसाय सर्वर 2003 पर Sql Server 2008 का उपयोग कर रहा हूं; क्लाइंट WinXP का उपयोग कर रहा है।

मैंने अपने सक्रिय निर्देशिका सुरक्षा समूह में एक उपयोगकर्ता जोड़ा; यह उपयोगकर्ता तुरंत डेटाबेस तक क्यों नहीं पहुंच सकता है? ऐसा लगता है कि Sql सर्वर में उपयोगकर्ता को पहचाने जाने से पहले एक देरी हुई है।

मैं स्पष्ट रूप से अनुमतियों के लिए AD सुरक्षा समूहों का उपयोग कर रहा हूं ताकि मुझे Sql सर्वर में अलग-अलग उपयोगकर्ताओं को जोड़ने की आवश्यकता न हो। इसलिए प्रभावी रूप से मुझे कुछ भी करने की आवश्यकता नहीं है, लेकिन एक्सेस देने के लिए उपयोगकर्ता को AD सुरक्षा समूह में जोड़ें।

लेकिन किसी कारणवश Sql Server तुरंत इसके अलावा पहचान नहीं करता है। मैंने इसे कई बार देखा है। मैं उपयोगकर्ता को समूह में जोड़ता हूं लेकिन वह उपयोगकर्ता अगले दिन तक डेटा तक नहीं पहुंच सकता है। ऐसा लगता है कि यह वास्तविक समय में सक्रिय निर्देशिका को क्वेरी नहीं करता है। क्या आप पुष्टि कर सकते हैं कि ऐसा है?

सक्रिय निर्देशिका से उपयोगकर्ताओं की सूची को Sql Server "ताज़ा" करने के लिए मुझे क्या करने की आवश्यकता है?


SQL सर्वर 2008 प्रबंधन स्टूडियो में, मैंने सुरक्षा समूह का उपयोग करके एक सर्वर लॉगिन जोड़ा और डेटाबेस पर उस लॉगिन के लिए एक उपयोगकर्ता मैप किया गया। यह महान काम करता है!
D_Bester

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

विभिन्न डोमेन नियंत्रकों की जांच करते हुए मैंने देखा कि प्रतिकृति वास्तव में 15 मिनट के बाद समाप्त हो गई है, लेकिन SQL नए उपयोगकर्ता को AD समूह पर ध्यान नहीं देता है। SQL सर्वर को पुनरारंभ करने से समस्या हल हो जाती है, इसलिए 24 घंटे इंतजार करना पड़ता है। बेहतर तरीका होना चाहिए।
हारून औसेथ

जवाबों:


12

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

यदि आपके डोमेन नियंत्रक अलग-अलग भौतिक स्थानों में हैं, तो बहु-साइट डोमेन प्रतिकृति विलंब भी ध्यान में रखा जाना चाहिए।


1
क्या कोई कमांड या स्क्रिप्ट है जो वर्कस्टेशन पर अपने AD टोकन को "रिफ्रेश" करने के लिए चला सकता है ताकि यह "पता" कर सके कि उपयोगकर्ता अब नए डोमेन-समूह का सदस्य है, और इस प्रकार देरी से बच सकता है? --Update: ऐसा लगता है कि एक व्यक्ति ने dba.stackexchange.com/a/44922/29371klist purge पर सिफारिश की , लेकिन इस चेतावनी के साथ कि यह अन्य कैश्ड संसाधन एक्सेसरों को तोड़ सकता है, जो उपयोगकर्ता को फिर से स्थापित करने या फिर से कनेक्ट करने के लिए करना होगा।
नैटज

@ मर्डनी सेवा खातों के लिए इसे संभालने के बारे में कोई सिफारिशें? हम सभी SQL इंस्टेंसेस को सेवा खातों के अंतर्गत चलाते हैं, और इन सर्विस अकाउंट्स का उपयोग SQL सर्वरों और SSRS आदि के बीच कनेक्शन के लिए करते हैं। किसी भी समय, हमारे पास मशीनों के बीच कई कनेक्शन होते हैं। हम वास्तव में सभी कनेक्शनों को डिस्कनेक्ट नहीं कर सकते हैं और नए विज्ञापन समूह की जानकारी प्राप्त करने के लिए एक नया लॉगिन करें।
SomeGuy

सेवा खातों के लिए, आप यह कर सकते हैं कि मशीन को सेवा को फिर से शुरू करना चाहिए, जिसे नए अधिकारों की आवश्यकता है।
मन्दिनी

5

जब कोई उपयोगकर्ता लॉग ऑन करता है, तो उन्हें एक सुरक्षा टोकन दिया जाता है जिसमें उनके समूह सदस्यता के बारे में सभी जानकारी शामिल होती है।

यह टोकन तब तक कायम रहता है जब तक कि उपयोगकर्ता लॉग-इन नहीं कर देता है - इस बिंदु पर उसे छोड़ दिया जाता है - भले ही आप उस समय में AD में समूह सदस्यता के लिए परिवर्तन करते हों। अगली बार उपयोगकर्ता द्वारा लॉग ऑन करने और एक नया सुरक्षा टोकन प्राप्त करने के बाद ही आपके द्वारा किए गए परिवर्तन प्रभावी होंगे।

उदाहरण के लिए, फ़ाइल सिस्टम पर अनुमतियाँ निर्दिष्ट करते समय आप उसी परिदृश्य को पुन: पेश कर सकते हैं; यह एक AD व्यवहार है, SQL सर्वर व्यवहार नहीं है।


1

तो आप तत्काल परिणाम प्राप्त करेंगे, हर बार एक cmd / स्क्रिप्ट चलाकर नई साख प्राप्त करेंगे:

runas /netonly /user:domain\username "sqlcmd -S serverName -d dbname -q \"insert into testpermissions values (65)\""

cmd.exe का उपयोग करते हुए (पावरशेल नहीं, मैं उद्धरण सही नहीं पा सका)।

इस तरह आपको प्रत्येक और हर बार एक नया टोकन मिलेगा (लेकिन आपको अपने pwd में प्रवेश करना होगा)। आप शायद एक सहेजे गए पासवर्ड पाठ के साथ भी कुछ कर सकते हैं, अगर चीजें बहुत खराब थीं।

वैसे भी, मेरे लिए काम करता है और मुझे आशा है कि यह किसी और की मदद करता है।

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