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

SQL Server 2000 危險擴展預存程序完整刪除與還原腳本

     編輯:關於SqlServer

為防止 xp_cmdshell、OLE Automation、登錄操作等高危擴展被惡意利用,建議在生產環境移除。需以 系統管理員帳號 在查詢分析器執行。

刪除腳本(20 項高危擴展 + sp_makewebtask)

USE master;
GO
EXEC sp_dropextendedproc 'xp_cmdshell';
EXEC sp_dropextendedproc 'xp_dirtree';
EXEC sp_dropextendedproc 'xp_enumgroups';
EXEC sp_dropextendedproc 'xp_fixeddrives';
EXEC sp_dropextendedproc 'xp_loginconfig';
EXEC sp_dropextendedproc 'xp_enumerrorlogs';
EXEC sp_dropextendedproc 'xp_getfiledetails';
EXEC sp_dropextendedproc 'sp_OACreate';
EXEC sp_dropextendedproc 'sp_OADestroy';
EXEC sp_dropextendedproc 'sp_OAGetErrorInfo';
EXEC sp_dropextendedproc 'sp_OAGetProperty';
EXEC sp_dropextendedproc 'sp_OAMethod';
EXEC sp_dropextendedproc 'sp_OASetProperty';
EXEC sp_dropextendedproc 'sp_OAStop';
EXEC sp_dropextendedproc 'xp_regaddmultistring';
EXEC sp_dropextendedproc 'xp_regdeletekey';
EXEC sp_dropextendedproc 'xp_regdeletevalue';
EXEC sp_dropextendedproc 'xp_regenumvalues';
EXEC sp_dropextendedproc 'xp_regread';
EXEC sp_dropextendedproc 'xp_regremovemultistring';
EXEC sp_dropextendedproc 'xp_regwrite';
DROP PROCEDURE sp_makewebtask;
GO

⚠️ 業務影響提醒

建議:若需備份/還原/附加功能,請保留 xp_dirtree、xp_regread、xp_fixeddrives,或於維護窗口臨時還原。

完整還原腳本(含 DLL 對應)

USE master;
GO
EXEC sp_addextendedproc 'xp_cmdshell',        'xplog70.dll';
EXEC sp_addextendedproc 'xp_dirtree',         'xpstar.dll';
EXEC sp_addextendedproc 'xp_enumgroups',      'xplog70.dll';
EXEC sp_addextendedproc 'xp_fixeddrives',     'xpstar.dll';
EXEC sp_addextendedproc 'xp_loginconfig',     'xplog70.dll';
EXEC sp_addextendedproc 'xp_enumerrorlogs',   'xpstar.dll';
EXEC sp_addextendedproc 'xp_getfiledetails',  'xpstar.dll';
EXEC sp_addextendedproc 'sp_OACreate',        'odsole70.dll';
EXEC sp_addextendedproc 'sp_OADestroy',       'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAGetErrorInfo',  'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAGetProperty',   'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAMethod',        'odsole70.dll';
EXEC sp_addextendedproc 'sp_OASetProperty',   'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAStop',          'odsole70.dll';
EXEC sp_addextendedproc 'xp_regaddmultistring','xpstar.dll';
EXEC sp_addextendedproc 'xp_regdeletekey',    'xpstar.dll';
EXEC sp_addextendedproc 'xp_regdeletevalue',  'xpstar.dll';
EXEC sp_addextendedproc 'xp_regenumvalues',   'xpstar.dll';
EXEC sp_addextendedproc 'xp_regread',         'xpstar.dll';
EXEC sp_addextendedproc 'xp_regremovemultistring','xpstar.dll';
EXEC sp_addextendedproc 'xp_regwrite',        'xpstar.dll';
GO

操作流程

  1. 備份 master 資料庫。
  2. 執行刪除腳本,驗證應用功能無異常(或可接受影響)。
  3. 如需還原,執行還原腳本即可。
  4. 定期審核 SELECT * FROM master..sysobjects WHERE xtype = 'X' 確認高危擴展未被重新註冊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
擴展刪除後失效功能
xp_cmdshell無法在 SQL 執行 OS 命令(合法管理腳本亦受影響)
xp_dirtree無法建立/附加資料庫(Enterprise Manager/附加精靈依賴)
xp_regread還原資料庫精靈輔助功能失效
xp_fixeddrives無法還原資料庫(磁碟空間檢查失效)