最近经常出现,打开软件时提示找不到存储过程sp_addextendedproc,是由于sqlserver被网络病毒攻击所至。
预防和处理办法:
1.在首先要做的工作是,加强SQLSERVER的安全设置,在安装SQLSERVER时,sa的密码要设置并记下来,不要用空密码。
安装好SQLSERVER之后,在企业管理器中,一直点开,找到"安全性"->"登录"->看到右边有BUILTIN\Administrators
这项,在它上面点鼠标右键,属性。点常规->身份验证,把安全性访问,改为"拒绝访问"。
在windows的控制面版,管理工具、计算机管理、本地用户和组,用户,找到SQLDebugger点右键属性,"帐户已经停用"打勾,确定。
2.如果已经出现了这个问题,要解决的话,先停止SQLSERVER服务,再启动,停止SQLSERVERAGENT(如果启动了),然后不要启动它。
在企业管理器中,一直点开,找到"安全性"->"登录"->看到右边有BUILTIN\Administrators这项,在它上面点鼠标右键,属性。
点常规->身份验证,把安全性访问,改为"拒绝访问"。然后在sa上点鼠标右键,属性,设置一个密码,确定。这个密码要记下来。
重启SQLSERVER.
3.经过第2步处理过后,再进入SQLSERVER的查询分析器,登录进去后,输入下面的命令,然后按F5执行:
createproceduresp_addextendedproc
@functnamenvarchar(517),
@dllnamevarchar(255)
as
setimplicit_transactionsoff
if@@trancount>0
begin
raiserror(15002,-1,-1,'sp_addextendedproc')
return(1)
end
dbccaddextendedproc(@functname,@dllname)
return(0)
4.另外,通过第1步处理后,在企业管理器中将不能点开原来的sqlserver服务器了,会提示:"XXXX\Administrator连接失败",此时要把"(local)(WindowsNT)"
删除掉,然后在SQLSEVER组上点右键,新的SQLSERVER注册。选择127.0.0.1,在选择身份验证模式时,连接使用要用SQLSERVER身份验证,
登录名和密码设置为sa和sa的密码,即可。
5.经过第2、第3步处理之后,SQLSERVERAGENT服务就启动不了,病毒就是通过这个服务攻击SQLSERVER的。软件的自动备份功能会失效。
处理方法是在企业管理器中,找到管理->SQLSERVER代理,作业,如果发现里面有个x,这就是病毒创建的。把里面的x删除掉。
然后在SQLSERVER代理上点右键属性,连接,使用SQLSERVER身份验证,选择sa,输入sa的密码,确定即可。