诸位,如何实现对数据的监控?这里“数据库的监控”的意思是当有进程对数据库系统进行访问的时候能够时时察看数据请求信息。例如:当一个软件向数据库发送一条数据请求‘select * from table’
这时监控工具就能够立即截获这条信息。如果我没有讲清楚这个问题,请参考sql server 2000中的“事件探查器”的功能。当然,我需要的是对非sql server2000数据库的监控。例如:mysql、access等。希望能够提供工具,或者详细阐述实现的原理和方法。

解决方案 »

  1.   

    参见delphi的TIBSQLMonitor控件、TSQLMonitor控件,
    delphi的demos\db\IBX\SQLMonitor目录有例子
      

  2.   

    参见delphi的TIBSQLMonitor控件、TSQLMonitor控件,
    delphi的demos\db\IBX\SQLMonitor目录有例子
      

  3.   

    我看过了,demo实现的是对自己的软件访问数据库的监控。这个对我来说没有任何意义。不是那个意思,我需要的是对外围的监控。而不是自己的进程。如前所述:
    “当有进程对数据库系统进行访问的时候能够时时察看数据请求信息。”这里的进程是任何访问数据库的进程!讨论继续中......
      

  4.   

    insert update delete 都可以用触发器实现,但select还没有听说过,倒很想学习学习,请高手们继续
      

  5.   

    哎!可不可以这样,把数据库服务器的端口改一下。比如说,SQL Server是1433端口,把它改成1533端口。然后自己作一个软件,监听1433端口,得到SQL请求全部记录下来,然后再传给1533端口
      

  6.   

    看了上面说的,是不是监听网络数据包不太好呀,他一定加密了,,
    HOOKAPI
    看看联数据库都用了哪些API函数,然后HOOK他,,看看其它程序都传了什么参数给这些函数,我想应该有指向SQL语句的指针,试试,,
      

  7.   

    我觉得好象程序是不能实现这个功能吧
    要查看所有用户的SQL语句操作,得数据库系统自身的功能吧
    就我所知,oracle和informix是可以查看用户正在进行的sql语句的