Subject Re: [firebird-support] Background auditing of Firebird database transactions
Author Thomas Steinmaurer

> Hi fellow Firebird users,
> Background:
> * Current Firebird version is 2.5
> * Windows OS could be anything...
> * We are using C# with FirebirdClient ADO.NET Data Provider
> * The software we write extracts and monitors the Firebird database of
> a third party application.
> * We do a major extract of data from the Firebird database, then
> attempt to monitor for changes.
> Comment:
> It appears to be very difficult for us to monitor the Firebird database for
> changes. We have started to look into the Trace functionality introduced in
> Firebird 2.5 to monitor for changes. This has helped, as we can relatively
> easily detect what tables have changed from the Trace output. But this involves
> a lots of string parsing, which is really not nice.
> We have just started to look into other software like FbTraceManager to help
> us, which appears to be a great tool for debugging issue, but I can't work out
> if there is a way to integrate FbTraceManager into an existing application to
> programmatically access the structured trace data.
> I've come across some slideshows on Auditing (different from Trace?) that make
> it sound like there is other functionality there, but maybe not documented?
> Question:
> Is there any way to detect table and row level changes, that could be
> integrated into an existing C# application? Identifying the changed row IDs in
> a table that has changed would be ideal...

If you are interested in what e.g. other DBMS products name "Change Data Capture", to audit/monitor data changes, then a trigger-based solution might be an appropriate mechanism. This might be a bit hard to do with the Trace functionality, which is great for debugging, getting the TOP X slowest queries etc.

IBLogManager is a third-party product for the trigger-based approach:

Of course, it is not too difficult to roll your own ...

With regards,
Thomas Steinmaurer

Professional Tools and Services for Firebird
FB TraceManager, IB LogManager, Database Health Check, Tuning etc.