首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 降權執行:以 Guest 帳戶權限啟動服務防駭指南

     編輯:關於SqlServer

背景與風險

  • SQL Server 2000 預設以 Local System(最高權限)執行。
  • 歷史漏洞(如 Slammer 蠕蟲、延伸預存程序溢位)可讓攻擊者透過 SQL 注入取得作業系統 SYSTEM 權限。
  • 微軟已停止支援 SQL Server 2000,**強烈建議升級至支援中版本**。若必須維運,請實施降權。

降權操作步驟

1. 建立低權限服務帳戶

  1. 開啟「電腦管理」→「本機使用者和群組」→「使用者」→「新增使用者」。
  2. 帳戶名:sqlservice,設定強密碼,「密碼永不過期」打勾。
  3. 「隸屬群組」:僅保留 Guests,移除 Users 等其他群組。

2. 授予 SQL Server 安裝目錄權限

假設安裝路徑 D:\Program Files\Microsoft SQL Server\:

  1. 右鍵 MSSQL 子資料夾 →「內容」→「安全性」→「編輯」→「新增」→輸入 sqlservice。
  2. 勾選 完全控制(含子資料夾與檔案繼承)。

3. 授予磁碟根目錄讀取權限

  1. 右鍵 D:\ →「安全性」→「編輯」→「新增」→ sqlservice。
  2. 僅勾選 讀取、列出資料夾內容。

4. 變更 SQL Server 服務啟動帳戶

  1. 開啟「企業管理員」→ 右鍵 (local) (Windows NT) →「屬性」→「安全性」。
  2. 選擇「啟動服務帳戶」→「這個帳戶」→輸入 sqlservice 與密碼。
  3. 確定 → 系統提示重啟服務 → 選「是」。

5. 驗證

  • 企業管理員根節點顯示「使用者:sqlservice」即成功。
  • 執行 xp_cmdshell 'whoami' 應回傳 sqlservice(若啟用 xp_cmdshell)。

後續加強建議

措施說明
停用 xp_cmdshellEXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE; 防止命令注入。
移除不必要的延伸預存程序xp_regread, xp_regwrite, xp_dirtree 等。
啟用登入稽核屬性→安全性→「失敗的登入」或「成功與失敗」。
防火牆限制 1433 埠僅允許應用伺服器 IP 存取。
定期套用修補程式雖已停止支援,仍可套用最後累積更新 (SP4 + 後續 Hotfix)。

現代替代方案

SQL Server 2000 已於 2013/4/9 結束延伸支援。 無安全性更新、無相容性保證、無技術支援。請規劃遷移至 SQL Server 2022 / Azure SQL / PostgreSQL 等支援中平台。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved