SQL Server 禁用Windows身份登入時忘記其他賬號如sa登入密碼後重置密碼

爱天一生水發表於2024-12-03

一 、事故造成及結果顯示

在以Windows身份登入後執行以下指令碼或進行如圖設定(以本機【DESKTOP-5FH0BTE\Admin】為例)

ALTER LOGIN [DESKTOP-5FH0BTE\Admin] DISABLE
GO

症狀特徵

而此時您沒有任何一個使用者的資訊或者已知使用者名稱不知道密碼,總不能再重灌一下SqlServer吧,所以您需要進行後續操作

首先您需要確保您有管理員許可權,如果沒有管理員許可權建議您重灌系統然後重灌SqlServer,好了閒言少敘,請看下文

二、建立使用者比如xmen

開啟【控制皮膚】--->【使用者賬戶】--->【使用者賬戶】--->【管理使用者】--->【在電腦設定中新增新使用者】

或【控制皮膚】--->【所有控制皮膚項】--->【使用者帳戶】--->【管理帳戶】--->【在電腦設定中新增新使用者】

以Win11為例如下圖所示

建立完成後重新整理後如下圖

選中後顯示如下圖,點選更改賬戶型別

選中管理員,點選更改賬戶型別

完成後,登出此使用者,切換其他使用者【xmen】登入,登入時需要簡單的配置,可以直接放過,因為我們會過河拆橋直接刪掉這個賬號的

注意:此時您已經是xmen了。

三、單使用者啟動SqlServer服務

開始裡面搜尋並開啟【服務】或執行中【Services.msc】等開啟,地位到以SQL開頭的服務

確保將SqlServer的所有訪問服務及程式全部關掉,然後開啟需要操作的服務如圖所示

關掉所有服務後,將SqlServer資料庫服務執行路徑開啟復制,後面有用免得再去敲,如我的執行為以下內容

"C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLE22\MSSQL\Binn\sqlservr.exe" -sMSSQLE22

以管理員身份開啟cmd,在以上命令列基礎上後面新增【 /m /f】執行

"C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLE22\MSSQL\Binn\sqlservr.exe" -sMSSQLE22 -m -f

顯示如下最後英文資訊即可為已完成單使用者模式啟動了,如果有其他資訊如開啟了SqlServerManagementStudio連線sa失敗等,如下圖

此時Ctrl+C停止執行,y退出,關閉所有連線後,然後重新執行,顯示無連線的狀態,開啟SqlServerManagementStudio然後以Windows身份登入即可登入,然後執行如下指令碼或設定即可

四、還原設定恢復使用者合法權益

以管理員身份開啟cmd,在以上命令列基礎上後面新增【 /m /f】執行

"C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLE22\MSSQL\Binn\sqlservr.exe" -sMSSQLE22 -m -f

使用SqlServerManagementStudio登入是可能有時候登入不成功,只需要在cmd上重複Ctrl+C和上述命令直到以下使用者可登入

重複開啟關閉後,總能出現如下圖所示內容,執行Sql指令碼或者進行設定即可完成此內容。

ALTER LOGIN [DESKTOP-5FH0BTE\Admin] ENABLE
G0

  

修改sa賬號還是建立新賬號不再贅述,此時最初的坑已經填完,剩下就是收尾工作了

五、收尾總結

登出xmen賬號,然後切換回原賬號如本機是【Admin】,然後過河拆橋刪除【xmen】賬號,啟動服務上述關閉的服務啟動或重啟電腦等自動啟動後再進行後續工作設定

不難看出SqlServer的Windows認證機制是基於Administers管理組的,所以整個操作下來的思路很清晰的就是建立另一個管理員賬號代替禁用的管理員賬號,然後用單使用者模式的Windows身份完成後續許可權的分配設定。

歡迎轉載【https://www.cnblogs.com/erikzhouxin/p/18584014

相關文章