SQL Server危险扩展的删除和恢复

文/唐林枫  出处/赛迪网

将有安全问题的SQL过程删除.比较全面.一切为了安全!


删除了调用shell,注册表,COM组件的破坏权限


MS SQL SERVER2000

使用系统帐户登陆查询分析器

运行以下脚本:

use master

exec sp_dropextendedproc 'xp_cmdshell'

exec sp_dropextendedproc 'xp_enumgroups'

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_regremovemultistring'

exec sp_dropextendedproc 'xp_regwrite'

drop procedure sp_makewebtask

go

删除所有危险的扩展:

exec sp_dropextendedproc 'xp_cmdshell' [删除此项扩展后,将无法远程连接数据库]

以下3个存储过程会在SQL SERVER恢复备份时被使用,非必要请勿删除

#exec sp_dropextendedproc 'xp_dirtree' [删除此项扩展后,将无法新建或附加数据库]

#exec sp_dropextendedproc 'Xp_regread' [删除此项扩展后, 还原数据库辅助]

#exec sp_dropextendedproc 'xp_fixeddrives' [删除此项扩展后,将无法还原数据库]


恢复脚本

use master

EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

EXEC sp_addextendedproc xp_enumgroups ,@dllname ='xplog70.dll'

EXEC sp_addextendedproc xp_loginconfig ,@dllname ='xplog70.dll'

EXEC sp_addextendedproc xp_enumerrorlogs ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_getfiledetails ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc Sp_OACreate ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc Sp_OADestroy ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc Sp_OAGetErrorInfo ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc Sp_OAGetProperty ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc Sp_OAMethod ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc Sp_OASetProperty ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc Sp_OAStop ,@dllname ='odsole70.dll'

EXEC sp_addextendedproc xp_regaddmultistring ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_regdeletekey ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_regdeletevalue ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_regenumvalues ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_regremovemultistring ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_regwrite ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_regread ,@dllname ='xpstar.dll'

EXEC sp_addextendedproc xp_fixeddrives ,@dllname ='xpstar.dll'

go

全部复制到"SQL查询分析器"


点击菜单上的--"查询"--"执行",就会将有安全问题的SQL过程删除。

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [SQL Server] 的这些文章也感兴趣:

SQL Server的新文件存储机制
使用SQL Server 2000将现有代码作为Web服务提供
手工快速删除SQL Server中的重复记录
教你轻松恢复/修复SQL Server的MDF文件
Microsoft SQL Server 2005 中的 XML 选项(1)
SQL SERVER中对查询结果随机排序
选择具有高可用性的数据库: SQL Server与Oracle对比分析 3
《百鬼夜行抄》真人版…一点点失望
使用SQL Server数据转换服务升迁Access数据库
微软SQL Server 2008 July CTP发布