आप जो भी करते हैं वह आपके SQL सर्वर संस्करण पर निर्भर करेगा, साथ ही नए क्रेडेंशियल्स को स्थापित करने के लिए आप SQL सर्वर सेवा को नीचे ले जा सकते हैं या नहीं। यहां पहले दो तरीकों को उदाहरण को पुनरारंभ करने की आवश्यकता नहीं है:
SQL सर्वर 2005, 2008 और 2008 R2 उदाहरणों के लिए
आप NT AUTHORITY\SYSTEM
खाते (या अन्य पिछले दरवाजे तरीकों) का उपयोग करके कनेक्ट कर सकते हैं । यहाँ कुछ उत्तरों में कुछ विवरण हैं:
मेरे पास MSSQLTips.com पर एक टिप भी है जो इस समस्या को हल करता है:
अनिवार्य रूप से, आप Microsoft से PSExec डाउनलोड करते हैं, फिर इसे स्थापित करने के बाद प्रबंधन स्टूडियो लॉन्च करने के लिए इसका उपयोग करें:
PsExec -s -i "C:\...\Ssms.exe"
यह कनेक्ट होगा NT AUTHORITY\SYSTEM
और आपको ऑब्जेक्ट एक्सप्लोरर में चीजें करने की अनुमति देगा, जैसे:
उदाहरण के लिए SQL सर्वर और Windows प्रमाणीकरण मोड में बदलें - सर्वर नाम, हिट गुण पर राइट-क्लिक करें और अगर यह वर्तमान में केवल Windows के लिए सेट है, तो रेडियो बटन बदलें:
sa
खाते के लिए पासवर्ड सेट करें - सुरक्षा का विस्तार करें, लॉगिन का विस्तार करें, राइट-क्लिक करें sa
और हिट करें गुण, और परिणामस्वरूप संवाद में दो पासवर्ड प्रविष्टि फ़ील्ड होंगे:
अपने लॉगिन को एकsysadmin
- राइट-क्लिक लॉगिन, नई लॉगिन के रूप में जोड़ें ... अपना लॉगिन नाम (फ़ॉर्म में DOMAIN\username
) दर्ज करें फिर सर्वर रोल्स टैब पर जाएं और sysadmin
बॉक्स की जांच करें और ठीक पर क्लिक करें:
(या, यदि आपका लॉगिन पहले से ही सूचीबद्ध है, तो राइट-क्लिक करें, गुण, और सुनिश्चित करें कि sysadmin
सर्वर रोल्स के तहत जाँच की गई है)
SQL सर्वर 2012 और नए उदाहरणों के लिए
SQL सर्वर 2012 से शुरू होकर, NT Authority\SYSTEM
डिफ़ॉल्ट रूप से SQL सर्वर को अधिकार नहीं दिया गया था। तो एक और तरीका है कि इन नए संस्करणों में Argenis फर्नांडीज द्वारा विस्तृत किया गया है :
- यदि SQL VSS लेखक सेवा चल रही है, तो उसे रोकें, और सभी रखरखाव योजनाओं या 3 पार्टी बैकअप सॉफ़्टवेयर को निलंबित करें जो उस पर भरोसा कर सकते हैं।
इंगित करने regedit.exe
के HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath
लिए मान को खोलें और बदलें SQLCMD.exe
, जो अंदर होने जा रहा है C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn
। संपादन के बाद, रजिस्ट्री मान कुछ इस तरह दिखना चाहिए (स्क्रॉलिंग के लिए खेद है):
"C:Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.exe" -S .\instancename -E -Q "ALTER ROLE sysadmin ADD MEMBER [YourDomain\YourUserName];"
SQL VSS राइटर सेवा को फिर से शुरू करने की कोशिश करें (आपको एक त्रुटि मिलेगी; यह ठीक है)।
अब आपको sysadmin
उपयोग के रूप में कनेक्ट करने में सक्षम होना चाहिए YourDomain\YourUserName
। तो SQL VSS राइटर सेवा को रोकें, रजिस्ट्री को ठीक करें, और सेवा को पुनरारंभ करें (यदि आपको इसे चलाने की आवश्यकता है, या यदि आप इसे शुरू करने से पहले चला रहे थे)।
मैं एक और टिप में एक बहुत अधिक विस्तार में इस के माध्यम से चला गया है:
हालांकि जब मैंने उस टिप को लिखा था तो मैंने उसकी प्रतिलिपि बनाने SQLCMD.exe
और बदलने के लिए एक अधिक बोझिल दृष्टिकोण का उपयोग किया sqlwriter.exe
- SQLCMD.exe
सीधे सेवा को इंगित करने के लिए बहुत आसान ।
यदि आप SQL सर्वर सेवा को नीचे ले जाने का जोखिम उठा सकते हैं
Microsoft से एक आधिकारिक रूप से समर्थित पथ है जो एकल उपयोगकर्ता मोड में आवृत्ति को पुनरारंभ करने की आवश्यकता है:
Dbatools.io में एक फ़ंक्शन भी है , SQL सर्वर के प्रबंधन के लिए एक पॉवर्सशेल समाधान, जिसे Reset-DbaAdmin
:
सुरक्षा यहां मुख्य मुद्दा नहीं है
मैं बहुत से लोगों को Microsoft को इन तथाकथित "कमजोरियों" को "ठीक" करने के लिए बुला रहा हूं। ये SQL सर्वर के उस इंस्टेंस तक पहुँच प्राप्त करने के लिए मान्य दृष्टिकोण हैं, जिसे आप सही तरीके से अपनाते हैं। उन सभी को भौतिक होस्ट पर उन्नत विशेषाधिकार की आवश्यकता होती है जहां SQL सर्वर रहता है; जैसा कि मैंने कई लोगों से कहा है, यदि आप डेवलपर्स को SQL सर्वर इंस्टॉलेशन के साथ खिलवाड़ नहीं करना चाहते हैं, तो उन्हें प्रशासक न बनाएं।