SQL Server的Windows身份驗證和sa登錄都被禁用的完美解決方法
當(dāng) SQL Server 的 Windows 身份驗證賬戶被誤刪且 sa 登錄同時被禁用時,會導(dǎo)致完全無法登錄數(shù)據(jù)庫。這種“雙重鎖定”狀態(tài)通常源于兩個操作疊加:
- 安裝時選擇“Windows 身份驗證模式”:默認(rèn)禁用 sa 賬戶;
- 后續(xù)誤刪 Windows 登錄賬戶:導(dǎo)致唯一訪問途徑失效.
單用戶管理員模式啟動
此方法通過特殊啟動模式賦予本地管理員 sysadmin 權(quán)限,適合大多數(shù)場景。
操作步驟:
1. 停止 SQL Server 服務(wù)
以管理員身份運行命令提示符(CMD)或 PowerShell。
net stop MSSQLSERVER # 若為默認(rèn)實例;命名實例需替換為實例名
注意 MSSQLSERVER 可能被替換
如果輸入net stop MSSQLSERVER 失敗 需要查詢實例名
1.1 win + R 輸入 services.msc 點擊確定
1.2 找到 SQL Server (某某) 括號中的某某就是實例名
1.3 打開cmd 輸入net stop MSSQL$某某 應(yīng)該就成功啦
2. 以單用戶模式啟動 SQL Server
cd "C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Binn" # 進(jìn)入安裝目錄 sqlservr.exe -m -f # -m 啟用單用戶模式,-f 最小配置啟動
保持此窗口運行,不要關(guān)閉。
注意: MSSQLXX.MSSQLSERVER 這里的XX 需要按照實際目錄替換
在運行這一步時可能會遇到錯誤:
your sql server installation is either corrupt or has been tampered with (error getting instance id from name ) please uninstall then re-run setup to correct this problem
這個錯誤表明 SQL Server 的實例配置信息已損壞或丟失,通常是由于注冊表項損壞或文件系統(tǒng)權(quán)限問題導(dǎo)致。
嘗試手動指定實例啟動:
2.1 首先 # 進(jìn)入Binn目錄(XX根據(jù)實際版本修改路徑)
cd "C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Binn"
2.2 其次 # 使用-s參數(shù)指定實例名(注意實例名大小寫敏感)
sqlservr.exe -m -f -s MSSQLSERVER
將 MSSQLSERVER替換為你的實例名 如: MSSQL$某某
3.通過 SSMS 連接并修復(fù)賬戶
3.1 打開 SQL Server Management Studio (SSMS)。
3.2 服務(wù)器名輸入 localhost,身份驗證選擇 Windows 身份驗證。
3.3 點擊“連接”,若彈出登錄框點擊“取消”,然后在菜單欄選擇“新建查詢”。
執(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 替換成 計算機名 (打開cmd 輸入 hostname 命令查看)
可能會遇到如下錯誤:
使用者'CN\...'的登入失敗,原因服務(wù)器為單一使用者模式.此時只有一位管理員可以鏈接.(MicrosoftSql server , 錯誤:18461)
出現(xiàn)此錯誤是因為 SQL Server 在單用戶模式下只允許一個管理員連接,而 SSMS 在連接時可能會嘗試建立多個連接(如對象資源管理器、查詢窗口等)。以下是詳細(xì)解決方法:
解決方案:使用 SQLCMD 命令行工具連接(推薦)
保持單用戶模式窗口運行(不要關(guān)閉sqlservr.exe -m -f的窗口)
以管理員身份打開新命令提示符:
sqlcmd -S localhost\SQLEXPRESS -E
-S localhost\SQLEXPRESS:指定命名實例
-E:使用 Windows 身份驗證
在 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
如按下回車,沒出現(xiàn)任何錯誤代表成功.
4. 重啟服務(wù)
4.1 在單用戶模式窗口按 ctrl + c 停止服務(wù)
4.2 重新以正常模式啟動:
net start MSSQLSERVER # 若為默認(rèn)實例;命名實例需替換為實例名
最后就可以打開 ssms 連接 登錄 sa 啦!
到此這篇關(guān)于SQL Server的Windows身份驗證和sa登錄都被禁用的解決方法的文章就介紹到這了,更多相關(guān)sqlserver windows身份驗證被禁用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WIN10運行SQL2000安裝程序時沒有反應(yīng)的問題解決辦法
Win10系統(tǒng)上安裝2000數(shù)據(jù)庫或者msde的數(shù)據(jù)庫經(jīng)常在打開第一步安裝的時候就報錯或者沒有反應(yīng),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
SQL中的GREATEST函數(shù)從一組數(shù)據(jù)中找出最大值的解決方案
SQL提供了一個強大的函數(shù)——GREATEST,可以輕松實現(xiàn)這一需求,下面詳細(xì)講述一下GREATEST函數(shù)的作用、用法、容易出現(xiàn)的問題以及解決方法,感興趣的朋友跟隨小編一起看看吧2024-06-06
SQL?Server數(shù)據(jù)庫分離和附加數(shù)據(jù)庫的操作步驟
數(shù)據(jù)庫的附加是數(shù)據(jù)庫在數(shù)據(jù)庫文件中添加到數(shù)據(jù)庫當(dāng)中的操作,下面這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫分離和附加數(shù)據(jù)庫的操作步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
跨服務(wù)器查詢導(dǎo)入數(shù)據(jù)的sql語句
此語句可用來將另一服務(wù)器中的數(shù)據(jù)插入到本數(shù)據(jù)庫中的某一表內(nèi)2009-10-10
Replace關(guān)鍵字的妙用查詢是否包含某個特定字符串
Replace關(guān)鍵字主要是用來將字符串中的某個字符替換成別的字符,今天要為大家介紹下使用它來查詢是否包含某個特定字符串,示例代碼如下,感興趣的朋友可以參考下2013-08-08

