请教真正的专家, 此问题比较深入, 字段被修改多种手段估测不到修改的 SQL语句, 求助
数据库有个表叫 country 被人在国名后面追加了非法链接, 当然还有别的数据表也同样遭殃了,
用dbcc log(9,3) with tableresults
或
select * from fn_dblog(null,null)
调出事务日志, 但是因为是服务器是 SQL Server 2000, 日志档也经常截断, 导致不完整, 查不出有效信息
======================================================================
于是我写了个触发器
Create Table Country_mon_sql(
username varchar(60),
client_ip varchar(100),
sql_text varchar(4000),
program_nm varchar(300),
c_interface varchar(600),
login_name varchar(300),
loginTime DateTime,
acTime DateTime default getdate() primary key
);
GO
--DROP TRIGGER tri_capt_dml_sql
--GO
Create Trigger tri_capt_dml_sql ON Country
INSTEAD OF DELETE, INSERT, UPDATE
AS
Begin
Declare @stmt varchar(4000)
SELECT @stmt='' --EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
insert into Country_mon_sql(username, client_ip, loginTime, program_nm, c_interface, [login_name], sql_text)
select user, [host_name], [login_time], [program_name], [client_interface_name], [login_name], @stmt
from Sys.dm_exec_Sessions where session_id=@@SPID
End;
GO
因为所有的更新都被强行替换了, 我自己测试 update或者 insert之类都会记录到数据表 Country_mon_sql中,
但是对方攻击时 country数据表不再被修改, 触发器也没有把内容记录到Country_mon_sql表中.
=======================================================
然后我使用 SQL Server Profiler工具对指定时段和这个被攻击的数据库进行全部追踪,
第二天, 还是找不到对方攻击 SQL,
请各位大神 , 师傅指点迷津