SQL Server的Windows身份驗證和sa登錄都被禁用的完美解決方法
當(dāng) SQL Server 的 Windows 身份驗證賬戶被誤刪且 sa 登錄同時被禁用時,會導(dǎo)致完全無法登錄數(shù)據(jù)庫。這種“雙重鎖定”狀態(tài)通常源于兩個操作疊加:
- 安裝時選擇“Windows 身份驗證模式”:默認禁用 sa 賬戶;
- 后續(xù)誤刪 Windows 登錄賬戶:導(dǎo)致唯一訪問途徑失效.
單用戶管理員模式啟動
此方法通過特殊啟動模式賦予本地管理員 sysadmin 權(quán)限,適合大多數(shù)場景。
操作步驟:
1. 停止 SQL Server 服務(wù)
以管理員身份運行命令提示符(CMD)或 PowerShell。
net stop MSSQLSERVER # 若為默認實例;命名實例需替換為實例名
注意 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" # 進入安裝目錄 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 首先 # 進入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 在連接時可能會嘗試建立多個連接(如對象資源管理器、查詢窗口等)。以下是詳細解決方法:
解決方案:使用 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 # 若為默認實例;命名實例需替換為實例名
最后就可以打開 ssms 連接 登錄 sa 啦!
到此這篇關(guān)于SQL Server的Windows身份驗證和sa登錄都被禁用的解決方法的文章就介紹到這了,更多相關(guān)sqlserver windows身份驗證被禁用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
日常收集整理SqlServer數(shù)據(jù)庫優(yōu)化經(jīng)驗和注意事項
本文是小編日常收集整理SqlServer數(shù)據(jù)庫優(yōu)化經(jīng)驗和注意事項,詳細介紹了SQL語句優(yōu)化的基本原則,包括索引、查詢和游標(biāo)的使用等2015-11-11
SQLServer設(shè)置客戶端使用IP地址登錄的圖文詳解
這篇文章主要介紹了SQLServer設(shè)置客戶端使用IP地址登錄的圖文詳解,本文通過圖文并茂的形式給大家介紹的非常想詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
SQL Server 2016的數(shù)據(jù)庫范圍內(nèi)的配置詳解
這篇文章主要介紹了SQL Server 2016的數(shù)據(jù)庫范圍內(nèi)的配置詳解的相關(guān)資料,需要的朋友可以參考下2016-03-03
SQLServer中Partition By及row_number 函數(shù)使用詳解
partition by關(guān)鍵字是分析性函數(shù)的一部分,partition by用于給結(jié)果集分組,如果沒有指定那么它把整個結(jié)果集作為一個分組,本文給大家介紹SQLServer中Partition By及row_number 函數(shù)使用詳解,需要的朋友參考下2015-11-11

