綠色資源網:您身(shēn)邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類(lèi)|軟件專題|廠商(shāng)大(dà)全

綠色(sè)資源網(wǎng)

技術教程
您(nín)的位置:首頁數據庫類SQL Server → SQLSERVER誤刪SA密碼Windows登錄用戶的解決(jué)辦法

SQLSERVER誤刪SA密碼Windows登錄用戶的解決(jué)辦法

我要評論 2014/01/11 23:06:14 來源:綠色資源網 編輯:www.ynaad.com [ ] 評論:0 點擊:507次

想起來之前著急哥問我的一(yī)個問題,一個DBA刪(shān)除了Windows登錄用戶(hù),而且SQLSERVER服務器的(de)驗證方式是Windows身份驗證。

怎麽辦??

我當時給他的答複是:重裝係統數據庫master

今天看到這篇文章沒有了SA密碼,無(wú)法(fǎ)Windows集成身(shēn)份登錄,DBA怎麽辦?,有思路了

假設我們遇(yù)到很糟糕(gāo)的情況

sa被禁用,服務器身份驗證為Windows身份驗(yàn)證模式,Windows登錄用戶被刪,沒有其他sysadmin角色的登錄用戶

步(bù)驟(zhòu)一

停(tíng)掉SQLSERVER:在命(mìng)令行 net stop mssqlserver

步驟二

轉到SQLSERVER的安裝目錄

然後加上/m /f   參數

步驟(zhòu)三:以為單用戶模式啟動SQLSERVER

步驟四:打開SSMS

這時候一定不要馬上進行連接,需要點擊取消,然後在左上角的點擊新建查詢,這個步驟跟DAC(專用管理員連接(jiē))的步驟是一樣的

你會發現用Windows登錄用戶這時候可以登錄

步驟五:執行下麵的SQL腳本

1 --打開xp_cmdshell功(gōng)能 2 EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35) 3     @configvalue = 1 -- int 4 RECONFIGURE WITH override 5  6  7 --修(xiū)改注冊表,修改身份驗證為混合驗證方式 8 USE [master] 9 GO10 EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 211 GO12 13 --創建登錄名14 CREATE LOGIN [計算機名\Administrator] FROM WINDOWS;15 GO16 17 --賦予登錄名的權限為sysadmin18 USE master19 GO20 EXEC [sys].[sp_addsrvrolemember] @loginame = '計算機名\Administrator', -- sysname21     @rolename = sysadmin -- sysname22 23 --關閉(bì)xp_cmdshell功(gōng)能24 EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35)25     @configvalue = 0 -- int26 RECONFIGURE WITH override

這時候(hòu)身份驗證方式已經改為混合驗證方式

步驟六:關掉SQLSERVER,再(zài)重新啟動

打開SQLSERVER配置管理器,啟動SQLSERVER

步驟七:登錄SQLSERVER

回到SSMS,可(kě)以看到這時候恢複正常了

總結

感謝i6first大俠,之前一直以為無法(fǎ)子了,想不到他想到了用單用戶模(mó)式啟動的方法來進入(rù)SQLSERVER。

沒有了SA密碼,無法Windows集成(chéng)身份登錄,DBA怎麽辦?

一同事反(fǎn)饋SQL無(wú)法正常登錄了,以前都是通(tōng)過windows集成身份驗證登錄進去的(sa密(mì)碼早(zǎo)忘記了(le)),今天就改了(le)服務器(qì)的機器名,現在無論如何都登錄(lù)不進去。

SQL登(dēng)錄時如果采用windows集(jí)成身份驗證,登錄框(kuàng)將會以“機器(qì)名\當前係統用戶名”的格式顯示登錄名,而且(qiě)登錄名和密碼都是灰色的,不允許(xǔ)用戶(hù)輸入。

了解到同事剛(gāng)剛修改了服務(wù)器的機器名,因此(cǐ)在(zài)SQL的登陸框中顯示“新機器名\當前係統用戶名”。要知道windows集成身份驗證能登錄的原因是在SQL的登錄名中(zhōng)已經包(bāo)括了該用戶名,原來的用戶名在SQL安裝的時候已經記錄到了SQL中,如果機器(qì)名變更了,“新機器名\當前係統用戶名(míng)”肯定無法正常登錄。

網上看到有人(rén)說可以采用OSQL–S instancename –E(在命令行窗口中輸入)登錄進去後再去修改sa的密碼(mǎ),一番(fān)嚐試後發現是扯談(tán),因為采用這種方式的前提是需要windows集成身份能夠登錄。

後來在微(wēi)軟(ruǎn)的(de)官網上看到一篇文檔,原來隻要在SQL的(de)啟動參數中加一個“-m”的選(xuǎn)項(記得在-m前加分號),然(rán)後需要重啟SQL服(fú)務,再次用SQL Management Studiowindows集成身份驗(yàn)證登陸就(jiù)可以了(le)。

-m表示單用戶登(dēng)錄。細心的(de)讀者可能會質(zhì)疑了:隻是(shì)加了-m,但最後還是采用的windows集成身份驗證,理(lǐ)論說(shuō)跟之前使用SQLOS –S instancename –E有什麽區別(bié)呢?

這個(gè)問得非常專業。當時我也沒有搞明白,覺得有(yǒu)點不可思(sī)議,但結果就是這樣,肯(kěn)定有其道理。後來在微軟的官(guān)網上找(zhǎo)到了這段話。

Start the instance of sql server in single-user mode by using either the -m or -f options. Any member of the computer's local Administrators group can then connect to the instance of SQL Server as a member of the sysadmin fixed server role.

大概的意思是說當在SQL的啟動參數中添加(jiā)了-m或者-f參(cān)數時,計算機本地管理員組(zǔ)的任何一個用戶都可以sysadmin的身(shēn)份登錄(lù)到SQL

關鍵詞:SQLSERVER,解決(jué)辦法

閱讀本文(wén)後您有什麽感想? 已有 人給出評價!

  • 1 歡迎喜歡(huān)
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視(shì)
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡