2月
21
2011

SQLServer 危险存储过程的删除与恢复

在还原数据库的时候出现”错误2812:未能找到存储过程’master.dbo.xp_fileexist'”,

分析原因:这是因为某个出于安全考虑把系统扩展存储过程所有的动态连接库都删了
通过搜索查询到下面的解决方法

解决方法:1、
把恢复数据库需要用到的存储过程个恢复,打开MSSQL查询分析器,分别运行下面的两条数据库语句即可.
EXEC sp_addextendedproc xp_dirtree ,@dllname =’xpstar.dll’
EXEC sp_addextendedproc xp_fileexist ,@dllname =’xpstar.dll’

解决方法:2、 重装SQL2000

SQL server 危险存储过程删除与恢复
删除
use master
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

恢复
use master
exec sp_addextendedproc xp_cmdshell,’xp_cmdshell.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’

在开始—-运行—-“NET START MSSQLSERVER AGENT”
控制面板–管理工具—服务—MSSQLSERVERAGENT(右键–属性–启动或右键–启动)

在操作数据库过程中出现“未能找到存储过程master.dbo.xp_regread”。原因:管理员做安全处理的时候把xp_regread给删除了。


解决办法:重新创建回去就行了
找到 数据库——master——扩展存储过程,右键“新建扩展存储过程”(名称:xp_regread,路径:xpstar.dll)(还原数据库时出现过此问题)。
 

 

相关文章

关于作者:moface

博主

留下评论

博客剩余工作

6,优化前台(YSlow) 2,404页面 3,IE6下兼容性问题很大 1,标签小工具行高有点儿问题 4,微博聚合 5,推广工作 7,CDN(cloudflare

分类

访问统计