襄阳隆中风景区导游:mssql删除不安全扩展存储过程的问题

来源:百度文库 编辑:高校问答 时间:2024/04/30 05:10:06
mssql数据库存在一些不安全的扩展存储过程,所以需要删除掉,但是我对这些扩展存储过程都不太熟,所以只能按照网上的一些比较流行的文章进行删除,我发现有些扩展存储过程删除以后影响到了mssql的一些正常操作
,请牛人指点一下, 详细谈一下这个问题,哪些能删 哪些不能删

不安全的扩展存储过程:xp_cmdshell,xp_regenumvalues,xp_regenumvalues,xp_regread,xp_regwrite,xp_regdeletevalue,xp_regdeletekey

可通过系统存储过程sp_dropextendedproc对上述几个存储过程进行删除

要重新添加添加请使用系统存储过程sp_addextendedproc,具体操作可以参考Microsoft Sql Server 联机丛书.

以下是通过几个危险存储过程进行危险操作的示范:

xp_cmdshell 以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。

xp_regenumvalues 以多个记录集方式返回所有键值
使用方法:
xp_regenumvalues 注册表根键, 子键
比如说,想看看HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 的所有键值:
use master
exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run'

xp_regread 返回制定键的值
使用方法:
xp_regread 根键,子键,键值名
use master
exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir'

xp_regwrite 写入注册表
使用方法:
xp_regwrite 根键,子键, 值名, 值类型, 值
use master
exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName','reg_sz','hello'
注意值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型

xp_regdeletevalue 删除某个值
使用方法:
xp_regdeletevalue 根键,子键,值名
use master
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName'

xp_regdeletekey 删除键,包括该键下所有值
使用方法:
use master
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey'