SQL 无法装载DLL Microsoft原因(无法修改sa密码)
use master
go
--检查xp_cmdshell是否被篡改
select * from master..syscomments where object_name(id)='xp_cmdshell' and text<>'xplog70.dll'
go
--检查其他存储过程是否被篡改
select object_name(id), * from master..syscomments where object_name(id) in
('xp_getfiledetails','xp_availablemedia','xp_dirtree','xp_fixeddrives','xp_s
ubdirs',
'xp_fileexist','xp_get_tape_devices','sp_MSgetversion','xp_enumdsn','xp_regr
ead','xp_regwrite','xp_regdeletevalue',
'xp_regaddmultistring','xp_regremovemultistring','xp_regenumkeys','xp_regenu
mvalues','xp_regdeletekey','xp_instance_regread',
'xp_instance_regwrite','xp_instance_regdeletevalue','xp_instance_regaddmulti
string','xp_instance_regremovemultistring',
'xp_instance_regenumkeys','xp_instance_regenumvalues') and text <>N'xpstar.dll'
go
--发现xp_cmdshell被篡改,执行下面语句改回来
--drop procedure xp_cmdshell
--go
--exec sp_addextendedproc N'xp_cmdshell', N'xplog70.dll'
--go
--然后执行下面语句验证xp_cmdshell是否正确
--xp_cmdshell 'dir c:/'
--如果该语句异常,还有可能sql server服务的启用账户(一般情况下是system)没有访问system32/cmd.exe文件的权限,加上权限即可
--发现其他存储过程被篡改,执行下面语句
--drop procedure 存储过程名称
--go
--exec sp_addextendedproc N'存储过程名称', N'xpstar.dll'