防止SQL SERVER的事件探查器跟踪程序中SQL脚本
如何防止程序中SQL脚本被SQL SERVER的事件探查器跟踪,保障自己的软件不被他人分析?
下面是一个停止所有SQLSERVER的跟踪器的脚本(两种方法的原理相同):
第一种方法:
procedure SQLCloseAllTrack;
const
sql = 'declare @TID integer ' +
'declare Trac Cursor For ' +
'SELECT Distinct Traceid from :: fn_trace_getinfo(default) ' +
'open Trac ' +
'Fetch Next from Trac into @TID ' +
'while @@fetch_status=0 ' +
'begin ' +
' exec sp_trace_setstatus @TID,0 ' +
' exec sp_trace_setstatus @TID,2 ' +
' Fetch Next from Trac into @TID ' +
'end ' +
'Close Trac ' +
'deallocate Trac';
begin
//停止所有SQLSERVER的跟踪器,以防止程序被別人跟踪
ExecSql(sql);
end;
第二种方法:
with faq1 do
begin
Close;
sql.Clear;
sql.add('declare @t_count int');
sql.add('set @t_count=1');
sql.add('while exists(SELECT * from ::::fn_trace_geteventinfo(@t_count))');
sql.add('begin');
sql.add('exec sp_trace_setstatus @t_count,0');
sql.add('set @t_count=@t_count+1');
sql.add('end');
try
execSQL;
except;
end;
close;sql.Clear;
end;
end;
相关文档:
问题:
我现在内容都调用出来了 就是唯一的一个问题 我要调当前用户ID 我用的PHPCMS {$r[userid]}这个变量 在SqlServer上调用不到
$sql="SELECT CustomerID, Carid, TotolPoints, TakePoints, LeavingPoints, CarType,Activation,Consumption
fro ......
SELECT id,ip,from_unixtime(last_task_request_time) t1, from_unixtime(last_task_finish_time) t2
from yq_nodemanage
WHERE node_type=1
ORDER BY t1 DESC;
SELECT sum(unix_timestamp(gather_time)-unix_timestamp(publish_time))/(count(*)*60) from yq_bbs_docinfo
WHERE unix_timestamp(publish_time)>un ......
sqlserver的几个函数要记录
今日碰到个问题:要实现数据表中的一个字段中的文本为"xxx.gif"的转换为"xxx.jpg",我不知道其具体名称,只知道是以gif结尾。
问题解决:update pet set petPhoto=substring(petPhoto,1,datalength(petPhoto)-3)+'jpg' where petPhoto like '%.gif'
注意匹配符:“%& ......
CONVERT的使用方法:
格式:
CONVERT(data_type,expression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
例子:
Select CONVERT(varchar(30),getdate(),101) now
结果为
now
......
declare @a int
set @a = 1
while @a<1000000
begin
insert into Test(name) values(@a)
set @a = @a + 1
end ......