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

SQL Server 必須移除的高風險擴展預存程序與安全加固清單

     編輯:關於SqlServer

核心高風險:xp_cmdshell

直接呼叫作業系統命令,等同資料庫留給 OS 的「大後門」。必須移除:

EXEC sp_dropextendedproc 'xp_cmdshell';

移除前記錄對應 DLL:

EXEC sp_helpextendedproc 'xp_cmdshell';
-- 或
SELECT o.name, c.text FROM dbo.syscomments c JOIN dbo.sysobjects o ON c.id=o.id WHERE o.name='xp_cmdshell';

若業務極少數需求須恢復 (SQL 2000):EXEC sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'。

次級風險:登錄存取類擴展程序

EXEC sp_dropextendedproc 'xp_regaddmultistring';
EXEC sp_dropextendedproc 'xp_regdeletekey';
EXEC sp_dropextendedproc 'xp_regdeletevalue';
EXEC sp_dropextendedproc 'xp_regenumvalues';
EXEC sp_dropextendedproc 'xp_regremovemultistring';
-- 保留 xp_regread / xp_regwrite (SQL Agent 作業需求)

Public 角色權限收斂

USE master;
REVOKE EXECUTE ON sp_MSSetServerProperties TO PUBLIC; -- 修改服務啟動模式
REVOKE EXECUTE ON sp_MSsetalertinfo TO PUBLIC;

SQL Agent 權限最小化

  • 服務帳號使用低權限網域帳號,禁止 LocalSystem。
  • 限制非 sysadmin 使用者建立/修改作業 (MSDB 角色 SQLAgentUserRole 等)。

修補與基線

  1. 安裝 SQL Server SP3 + 後續累積更新 (防 SQL Hello 緩衝區溢位等)。
  2. 資料庫層級:不同應用使用不同登入,授予 db_owner 或 public 最小權限。
  3. sa 強制複雜密碼、禁用或重命名,應用程式嚴禁使用 sa 連線。
  4. 啟用 Windows + SQL Server 混合驗證,並透過登入觸發器限制 IP/應用程式名。

附錄:IIS 中文檔名下載 404 與 ASP 上傳 200KB 限制

  • 中文檔名:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\FavorDBCS = 0。
  • ASP 上傳限制:編輯 %windir%\system32\inetsrv\metabase.xml,AspMaxRequestEntityAllowed 增加一個 0 (200KB → 2000KB)。需先停 IIS Admin Service。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved