替換SQL Server中Windows身份驗證登陸名buildin\Administrator

以Administrator賬戶登陸服務器的人員,均可以以buildin\Administrator登陸數據庫,並且擁有sysadmin最大權限。而能夠使用Administrator登陸服務器可能包括系統維護人員、網絡安全人員、機房管理人員、DBA,甚至於開發人員等。這樣就會有非DBA人員意外以最大權限登陸數據庫的潛在安全隱患問題,本文將由DBA創建本人獨佔的Windows身份驗證登陸名,禁用或者刪除SQL Server 的buildin\Administrator賬戶的方式,避免這一風險。

創建Windows用戶

SQL Server 的Windows 身份驗證是在Windows中進行身份驗證的,登陸SQL Server時不需要密碼。要創建Windows身份驗證的SQL Server賬戶,首先需要創建一個Windows賬戶。下面以Windows 2012 R2標準版爲例,創建Windows賬戶。

 在工具→計算機管理→本地用戶和組中,右擊用戶,選擇新建用戶,新用戶窗口如下:

輸入用戶名,密碼,取消“用戶下次登陸時必須更改密碼”,勾選“密碼永不過期”,最後點擊創建,即完成了用戶的創建。默認情況下創建的用戶是在用戶組的,我們可以通過右擊我們創建的用戶,選擇屬性,在隸屬於下,更改用戶所在的組,具體步驟如下圖:

最後,我們要使用這個賬戶進行遠程連接,還需要將其添加爲遠程桌面連接用戶。進入控制面板,點擊系統,在系統屬性的遠程標籤下,遠程桌面下,勾“允許遠程連接到此計算機”、“僅允許運行使用網絡級別身份驗證的遠程桌面的計算機連接”,點擊右下角的“選擇用戶”,找到我們剛創建的windowsLoginTest用戶,添加確認,如下:

至此,Windows是用戶已經創建完成,下面我們將使用該賬戶創建Windows驗證的SQL Server 登陸賬戶。

創建Windows身份驗證的SQL Server 登陸賬戶

可以直接在SSMS,服務器安全性下,右擊登陸名,新建登陸名,在登陸名中填入[服務器名\用戶名],也可以通過右側的搜索找到我們上面創建的Windows用戶名,windowsLoginTest,單選框選擇“Windows身份驗證”,點擊確定即可以創建,如下圖:

當然,我們也可以使用T-SQL腳本進行創建,腳本如下:

CREATE LOGIN [buildin\windowsLoginTest] FROM WINDOWS;​

注意:腳本中的buildin爲服務器名或者域名。

下面我將[buildin\windowsLoginTest]添加爲sysadmin成員:

EXEC sp_addsrvrolemember [buildin\windowsLoginTest],sysadmin

至此,buildin\windowsLoginTest 與 buildin\Administrator 擁有相同的權限,接下來我們只需要禁用或者刪除掉SQL Server 登陸賬戶 buildin\Administrator 即可,腳本如下:

alter login [buildin\Administrator] disable
--or
drop login [buildin\Administrator]

如下是測試禁用[buildin\Administrator]登陸賬戶後,使用[buildin\Administrator]連接情況,報[buildin\Administrator]登陸失敗,賬戶被禁用:

總結:通過上述操作,我們可以規避非DBA人員對數據庫誤操作的風險。當然安全總是相對的,如果有人惡意以Administrator身份登陸服務器,修改掉我們創建Windows用戶賬戶密碼,再以該賬戶和新密碼登陸數據庫的話,還是存在着嚴重安全隱患的。我們安全防範的路還很長……

如果喜歡,可以搜索關注MSSQLServer 公衆號,將有更多精彩內容分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章