自己写个数据库级别的细微粒度审核 求服务器级别的.
if object_id(N'xwj_table_all_event','U') is not null
drop table xwj_table_all_event
go
create table xwj_table_all_event
(lsn int identity(1,1),
 posttime datetime,
 eventtype varchar(200),
 login_name varchar(200),
 schema_name varchar(200),
 targetobjectname varchar(200),
 eventdata xml
);
go
create trigger all_event on database for ddl_database_level_events
as
declare @eventdata xml
set @eventdata=eventdata()
insert into xwj_table_all_event(posttime,eventtype,login_name,schema_name,targetobjectname,eventdata)
values
(@eventdata.value('(/EVENT_INSTANCE/PostTime)[1]','datetime'),
 @eventdata.value('(/EVENT_INSTANCE/EventType)[1]','varchar(200)'),
 @eventdata.value('(/EVENT_INSTANCE/LoginName)[1]','varchar(200)'),
 @eventdata.value('(/EVENT_INSTANCE/SchemaName)[1]','varchar(200)'),
 @eventdata.value('(/EVENT_INSTANCE/TargetObjectName)[1]','varchar(200)'),
 @eventdata)
go--测试 
create table dbo.xx(id int )create index x_index on xwj_table_all_event(lsn)--查看
select lsn,posttime,eventtype,login_name,schema_name,targetobjectname,
eventdata.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','varchar(max)') 
as eventdata
from xwj_table_all_event/*
lsn     posttime                eventtype   login_name schema_name  targetobjectname
1 2008-09-24 22:30:15.780 DROP_TABLE sa dbo        NULL                drop table xx
2 2008-09-24 22:30:18.640 CREATE_TABLE sa dbo        NULL                create table dbo.xx(id int )
3 2008-09-24 22:30:21.577 CREATE_INDEX sa dbo xwj_table_all_event        create index x_index on     xwj_table_all_event(lsn) 
*/  

解决方案 »

  1.   

    无聊 看看csdn高手怎么写服务器级别的 
      

  2.   

    dba用的相当于oracle 里面现成的粒度审核免得去日志里面看
      

  3.   

    这个东西其实没什么好写的了,可用到的也就是eventdata了,顶多根据SPID
    根据各自的需求,关联一些DMV,得到自己想要的东西,比如应用程序名,客户端IP等。
    就好比2008里的策略配置,我想开启什么策略,禁止什么,按照模式,配置就好了。
    完全个人喜好~。
      

  4.   

    但实际上我们DBA不会去用这个,因为数据库的东西是由我们DBA管理
    做这些东西,实际意义不大,反而如果跑在生产环境下,会带来负面的效率影响。
      

  5.   

    明天找你们聊 上下文信息传递 context_info
      

  6.   

    ...大哥你是dba嘛?不是的话就不要乱说没用
      

  7.   

    你的数据库第二天被谁做了手脚都不知道 那还叫dba?
      

  8.   

    不过在2008下,审核是做成了一个应用功能,而不是以T-SQL的触发器这样来体现
    可操作性,可管理性得到了比较大的改观,感觉还有其实际价值。我曾经在想,是不是真的很多企业没有用这个,MS才考虑把其升级成为一个应用功能。
    就好比NOTIFICATION SERVICE将要被取缔一样。
      

  9.   

    oracle 都有现成的细微粒度审核 照你这样说岂不是画蛇添足。去看看oralce 11g的文档.
      

  10.   

    有这些功能,并不是一定好用和适用,画蛇添足是你说的。VISTA很花哨,用得人多么?