[SQL][Windows]利用 xp_cmdshell 建立一個臨時性帳號

[SQL][Windows]利用 xp_cmdshell 建立一個臨時性帳號

中午要休息的時候,有朋友傳來一個訊息,他們的 MIS 離職的時候,把主機 Administrator 給更改密碼了,現在無法登入到主機進行處理,但因為遠在海峽的對岸,沒有辦法到他那裏幫忙處理,而在討論的過程中他說該主機上目前還有 SQL Server 在運作,系統還是可以運作,因此就提供一個狸貓換太子的方式,讓他透過 xp_cmdshell 來建立一個具有 Administrators 群組權限的帳號,利用該帳號登入主機,就可以來做後續的調整了。

 

以下就是用到的一些指令,提供給有需要的朋友參考看看

-- 開啟進階設定
sp_configure 'show advanced options' , 1
RECONFIGURE
GO
 
-- 啟動 xp_cmdshell , 預設是關閉的
sp_configure 'xp_cmdshell',1
GO
 
RECONFIGURE
GO
 
-- 建立一個帳號,因為是 2008 的作業系統有限制密碼規則,因此就用瞭一個比較複雜的
xp_cmdshell 'net user test P@ssw0rd /add'
GO
 
-- 將帳號加入到 Administrators 群組
xp_cmdshell 'net localgroup administrators test /add'
GO
 
-- 關閉 xp_cmdshell
sp_configure 'xp_cmdshell',0
GO
 
-- 關閉進階設定
sp_configure 'show advanced options' , 0
RECONFIGURE
GO

 

當然這只是個偏方,要剛好啟動 SQL Server 的權限夠大,且具有 sysadmin 的身份可以登入 SQL Server,倘若沒有符合上述的狀況,那可能就要到本機下來有辦法來做處理了。