आप sa पासवर्ड कैसे रीसेट करते हैं?


22

मैंने एक मशीन पर sa पासवर्ड खो दिया है, और जब मैं व्यवस्थापक समूह में एक खाते का उपयोग करके सीधे मशीन में लॉग इन करता हूं, तो SQL सर्वर प्रबंधन स्टूडियो मुझे Windows प्रमाणीकरण का उपयोग करने में लॉग इन करने की अनुमति नहीं देगा।

मेरी योजना केवल सर्वर में लॉग इन करने, विंडोज ऑथेंटिकेशन से जुड़ने और नए पासवर्ड का उपयोग करने के लिए रीसेट करने की थी। चूंकि मैं Windows प्रमाणीकरण के माध्यम से कनेक्ट नहीं कर सकता, इसलिए यह काम नहीं करेगा।

मैं और पासवर्ड कैसे रीसेट कर सकता हूं?


उत्तर मिला। मैं एक डोमेन व्यवस्थापक के रूप में लॉग इन नहीं कर सका, लेकिन स्थानीय व्यवस्थापक का उपयोग करके ठीक काम किया।
डैनियल विलियम्स

क्या आपका मतलब है कि स्थानीय मशीन 'एडमिनिस्ट्रेटर' समूह का सदस्य ऐसा करने में सक्षम था? पश्चाताप के लिए, आपने क्या सटीक कदम उठाए?
पी। काम्पबेल

खाता स्वयं स्थानीय व्यवस्थापक खाता था। यह खाता स्थानीय Adminsitrators समूह का हिस्सा है, जैसा कि मेरा डोमेन खाता है। लेकिन केवल स्थानीय व्यवस्थापक खाता Sql सर्वर में लॉग इन करने के लिए Windows प्रमाणीकरण का उपयोग करने में सक्षम था। मुझे आशा है कि वह मदद करेंगे।
डैनियल विलियम्स

एकल-उपयोगकर्ता मोड में इंस्टेंस को शुरू करने से कोई भी स्थानीय खाता जो इंस्टेंस के लिए स्थानीय व्यवस्थापक समूह पहुँच का हिस्सा है, को भी अनुमति देगा। संपादित करें: लिंक @ user1419 इसे इंगित करता है।
शॉन मेल्टन

जवाबों:


10

SA पासवर्ड रीसेट करने के लिए आप नीचे दिए गए लिंक में दिए गए चरणों का पालन कर सकते हैं:

नीचे संक्षेप में दिए गए चरण:

  1. स्टार्ट मेनू से SQL सर्वर कॉन्फ़िगरेशन प्रबंधक खोलें> प्रोग्राम> Microsoft SQL सर्वर 20xx> कॉन्फ़िगरेशन टूल> आपके द्वारा स्थापित SQL सर्वर के नवीनतम संस्करण के लिए प्रासंगिक है (जैसे यदि आपने 2005 और 2012 स्थापित किया है, तो 2012 संस्करण का उपयोग करें)। प्रारंभ मेनू नहीं है? विंडोज 8 की स्टार्ट स्क्रीन पर, SQL सर्वर कोन टाइप करना शुरू करें ... जब तक कि यह दिखाई न दे।
  2. SQL सर्वर सेवा में आवृत्ति को राइट-क्लिक करके और "रोकें" का चयन करके पुनर्प्राप्त करने के लिए आवश्यक SQL सर्वर आवृत्ति बंद करें
  3. आपके द्वारा अभी-अभी बंद किए गए उदाहरण पर राइट-क्लिक करें, गुण क्लिक करें, और "उन्नत" टैब में, गुण पाठ बॉक्स में "-m" जोड़ें "स्टार्टअप पैरामीटर" विकल्प में सूची के अंत में (नए संस्करणों पर, आप सीधे "स्टार्टअप पैरामीटर्स" टैब पर जा सकते हैं, टाइप करें "-m" और सिंटैक्स, सेमी-कोलोन या कुछ और के बारे में चिंता किए बिना ऐड पर क्लिक करें)।
  4. "ओके" बटन पर क्लिक करें, और SQL सर्वर इंस्टेंस को पुनरारंभ करें
  5. एकल-उपयोगकर्ता मोड में SQL सर्वर इंस्टेंस प्रारंभ होने के बाद, Windows व्यवस्थापक खाता SQL सर्वर से Windows प्रमाणीकरण का उपयोग करके SQLlcmd उपयोगिता का उपयोग करने में सक्षम होता है। आप sysadmin सर्वर रोल में मौजूदा लॉगिन (या एक नया बनाया गया) जोड़ने के लिए "sp_addsrvrolemember" जैसे Transact-SQL कमांड का उपयोग कर सकते हैं।

निम्न उदाहरण "कंट्रोल" डोमेन में "बक" को sysadmin भूमिका में जोड़ता है:

EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';

एक बार जब sysadmin पहुंच पुनर्प्राप्त हो गई है, तो कॉन्फ़िगरेशन प्रबंधक का उपयोग करके स्टार्टअप मापदंडों से "-m" हटा दें और SQL सर्वर आवृत्ति को एक बार फिर से पुनरारंभ करें।

नोट: सुनिश्चित करें कि "," और "-m" के बीच कोई स्थान नहीं है, रजिस्ट्री पैरामीटर पार्सर ऐसे टाइपोस के प्रति संवेदनशील है। आपको SQL सर्वर ERRORLOG फ़ाइल में एक प्रविष्टि दिखनी चाहिए जो कहती है कि "SQL सर्वर एकल-उपयोगकर्ता मोड में शुरू हुआ।"


अतिरिक्त संसाधन:

अंततः, आप हमेशा डेटाबेस फ़ाइलों को किसी अन्य उदाहरण में कॉपी कर सकते हैं, या यहां तक ​​कि SQL सर्वर को पुनर्स्थापित भी कर सकते हैं (इस प्रक्रिया के दौरान एक स्थानीय खाते को sysadmin के रूप में जोड़कर)।


9

आप जो भी करते हैं वह आपके 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 फर्नांडीज द्वारा विस्तृत किया गया है :

  1. यदि SQL VSS लेखक सेवा चल रही है, तो उसे रोकें, और सभी रखरखाव योजनाओं या 3 पार्टी बैकअप सॉफ़्टवेयर को निलंबित करें जो उस पर भरोसा कर सकते हैं।
  2. इंगित करने 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];"
  3. SQL VSS राइटर सेवा को फिर से शुरू करने की कोशिश करें (आपको एक त्रुटि मिलेगी; यह ठीक है)।

  4. अब आपको sysadminउपयोग के रूप में कनेक्ट करने में सक्षम होना चाहिए YourDomain\YourUserName। तो SQL VSS राइटर सेवा को रोकें, रजिस्ट्री को ठीक करें, और सेवा को पुनरारंभ करें (यदि आपको इसे चलाने की आवश्यकता है, या यदि आप इसे शुरू करने से पहले चला रहे थे)।

मैं एक और टिप में एक बहुत अधिक विस्तार में इस के माध्यम से चला गया है:

हालांकि जब मैंने उस टिप को लिखा था तो मैंने उसकी प्रतिलिपि बनाने SQLCMD.exeऔर बदलने के लिए एक अधिक बोझिल दृष्टिकोण का उपयोग किया sqlwriter.exe- SQLCMD.exeसीधे सेवा को इंगित करने के लिए बहुत आसान ।


यदि आप SQL सर्वर सेवा को नीचे ले जाने का जोखिम उठा सकते हैं

Microsoft से एक आधिकारिक रूप से समर्थित पथ है जो एकल उपयोगकर्ता मोड में आवृत्ति को पुनरारंभ करने की आवश्यकता है:

Dbatools.io में एक फ़ंक्शन भी है , SQL सर्वर के प्रबंधन के लिए एक पॉवर्सशेल समाधान, जिसे Reset-DbaAdmin:


सुरक्षा यहां मुख्य मुद्दा नहीं है

मैं बहुत से लोगों को Microsoft को इन तथाकथित "कमजोरियों" को "ठीक" करने के लिए बुला रहा हूं। ये SQL सर्वर के उस इंस्टेंस तक पहुँच प्राप्त करने के लिए मान्य दृष्टिकोण हैं, जिसे आप सही तरीके से अपनाते हैं। उन सभी को भौतिक होस्ट पर उन्नत विशेषाधिकार की आवश्यकता होती है जहां SQL सर्वर रहता है; जैसा कि मैंने कई लोगों से कहा है, यदि आप डेवलपर्स को SQL सर्वर इंस्टॉलेशन के साथ खिलवाड़ नहीं करना चाहते हैं, तो उन्हें प्रशासक न बनाएं।


क्या यह विधि मुझे SA खाते को सक्षम करने की अनुमति देगी? मैं उस स्थिति में फंस गया हूं, जहां मेरा SA खाता अक्षम है और मेरे पास सार्वजनिक भूमिका वाला AD समूह है। इसके अलावा, आपकी विधि सूचीबद्ध है, क्या मैं इन कदमों का प्रदर्शन करने में सक्षम होऊंगा / ओ नीचे उदाहरण ले रहा हूं? मैं पूछता हूं क्योंकि मेरा सर्वर अभी उत्पादन के माहौल में है।
शॉन पर्किंस

1
@ सीन हाँ, आपको सा को फिर से सक्षम करने में सक्षम होना चाहिए, और / या एक और एसक्यूएल सामान्य खाता बनाना, या विशेष रूप से एक अधिक उन्नत भूमिका के लिए अपना एडी (समूह नहीं!) जोड़ना चाहिए। इनमें से किसी को भी SQL सर्वर को पुनरारंभ करने की आवश्यकता नहीं होगी (केवल वही मामला जहां इसकी आवश्यकता होगी, केवल मिश्रित प्रमाणीकरण और विंडोज के बीच बदल रहा है)।
हारून बर्ट्रेंड

जब आपकी प्रक्रिया में विलंब होता है, तो मुझे निम्न त्रुटि मिलती है। मैंने केवल सूचीबद्ध खातों का स्क्रीनशॉट लेना सुनिश्चित किया है। SQL 2012 में कुछ बिंदु पर परिवर्तन हुआ था जो इस विधि की अनुमति नहीं देगा? मेरा वर्तमान संस्करण 11.0.3128 है । इसके अलावा, इससे कोई फर्क नहीं पड़ता कि मैं किस प्रकार का परिवर्तन करता हूं, मुझे त्रुटि की कुछ भिन्नता मिलेगी जो यह बताती है कि मेरे पास अनुमति नहीं है। एक अंतिम बात, मुझे संदेह है कि इससे फर्क पड़ता है, लेकिन मैंने PowerShell को व्यवस्थापक अधिकारों के साथ खोला, cmd.exe निष्पादित किया, फिर psexec -i -s "C: \ ...... smss..exe"! [खाता निर्माण त्रुटि] ( i.stack.imgur.com/ITOja.p
सीन पर्किन्स

संलग्न तस्वीर अब कुछ भी नहीं दिखा रही है, लेकिन इसमें केवल सूचीबद्ध खातों के रूप में "SA" और "NT AUTHORITY \ SYSTEM" थे। मुझे प्राप्त त्रुटि संदेश "उपयोगकर्ता के पास इस क्रिया को करने की अनुमति नहीं है। (Microsoft SQL सर्वर, त्रुटि: 15247)"
सीन पर्किन्स

@ सीन पॉवरशेल? PSExec का PowerShell से कोई लेना-देना नहीं है। क्या आप मशीन पर स्थानीय प्रशासक हैं? क्या आपको यकीन है?
हारून बर्ट्रेंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.