歡迎來(lái)到藍(lán)隊(duì)云小課堂
今天告訴大家當(dāng)SQL Server的Windows賬戶被誤刪且sa禁用時(shí),無(wú)法登錄時(shí)改如何解決。
當(dāng) SQL Server 的 Windows 身份驗(yàn)證賬戶被誤刪且 sa 登錄同時(shí)被禁用時(shí),會(huì)導(dǎo)致完全無(wú)法登錄數(shù)據(jù)庫(kù)。這種“雙重鎖定”狀態(tài)通常源于兩個(gè)操作疊加:
1. 安裝時(shí)選擇“Windows 身份驗(yàn)證模式”:默認(rèn)禁用 sa 賬戶。
2. 后續(xù)誤刪 Windows 登錄賬戶:導(dǎo)致唯一訪問(wèn)途徑失效。
單用戶管理員模式啟動(dòng)
1. 停止 SQL Server 服務(wù)
以管理員身份運(yùn)行命令提示符(CMD)或 PowerShell
net stop MSSQLSERVER # 若為默認(rèn)實(shí)例;命名實(shí)例需替換為實(shí)例名
如果輸入net stop MSSQLSERVER 失敗 需要查詢實(shí)例名:
1.1 win + R 輸入 services.msc 點(diǎn)擊確定
1.2 找到 SQL Server (XXX) 括號(hào)中的XXX就是實(shí)例名
2. 以單用戶模式啟動(dòng) SQL Server
進(jìn)入安裝目錄后輸入:
sqlservr.exe -m -f # -m 啟用單用戶模式,-f 最小配置啟動(dòng)
保持此窗口運(yùn)行,不要關(guān)閉
3. 通過(guò) SSMS 連接并修復(fù)賬戶
3.1 打開(kāi) SQL Server Management Studio (SSMS)
3.2 服務(wù)器名輸入 localhost,身份驗(yàn)證選擇 Windows 身份驗(yàn)證。
3.3 點(diǎn)擊“連接”,若彈出登錄框點(diǎn)擊“取消”,然后在菜單欄選擇“新建查詢”。
執(zhí)行以下sql命令:
ALTER LOGIN sa ENABLE; -- 啟用 sa 賬戶
ALTER LOGIN sa WITH PASSWORD = 'YourNewPassword'; -- 設(shè)置 sa 密碼
CREATE LOGIN [YourHostName\\Administrator] FROM WINDOWS; -- 重建 Windows 賬戶
ALTER SERVER ROLE sysadmin ADD MEMBER [YourHostName\\Administrator]; -- 授予管理員權(quán)限
GO
這里的PASSWORD = ' YourNewPassword '需要換成你自己重新設(shè)定的密碼;YourHostName 替換成計(jì)算機(jī)名(打開(kāi)cmd輸入hostname命令查看)
可能會(huì)遇到如下錯(cuò)誤:
使用者'CN\\...'的登入失敗,原因服務(wù)器為單一使用者模式.此時(shí)只有一位管理員可以鏈接.(MicrosoftSql server , 錯(cuò)誤:18461)
出現(xiàn)此錯(cuò)誤是因?yàn)?/span> SQL Server 在單用戶模式下只允許一個(gè)管理員連接,而 SSMS 在連接時(shí)可能會(huì)嘗試建立多個(gè)連接(如對(duì)象資源管理器、查詢窗口等)。以下是詳細(xì)解決方法:
-保持單用戶模式窗口運(yùn)行(不要關(guān)閉sqlservr.exe -m -f的窗口)
-以管理員身份打開(kāi)新命令提示符:sqlcmd -S localhost\\SQLEXPRESS -E
(-S localhost\\SQLEXPRESS:指定命名實(shí)例;-E:使用 Windows 身份驗(yàn)證)
-在 SQLCMD 中執(zhí)行修復(fù)命令:
1> ALTER LOGIN sa ENABLE;
2> GO
1> ALTER LOGIN sa WITH PASSWORD = 'YourStrongPassword!123';
2> GO
1> CREATE LOGIN [BUILTIN\\Administrators] FROM WINDOWS;
2> GO
1> ALTER SERVER ROLE sysadmin ADD MEMBER [BUILTIN\\Administrators];
2> GO
1> QUIT
如按下回車,沒(méi)出現(xiàn)任何錯(cuò)誤代表成功.
4. 重啟服務(wù)
4.1 在單用戶模式窗口按 ctrl + c 停止服務(wù)
4.2 重新以正常模式啟動(dòng):
net start MSSQLSERVER # 若為默認(rèn)實(shí)例;命名實(shí)例需替換為實(shí)例名
最后就可以打開(kāi)ssms連接登錄sa了。
更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。