Im searching for something that may watch database(mysql and oracle) for changes.
When someone card inserts or updates something in almost any(or selected) table i wish to become familiar with about this. It may be very helpful for dealing with others people code which do some miracle in database.
I understand that it is possible using triggers (see this question), but im interested in some tool that may get it done. free tool.
For Oracle, you're searching for the AUDIT command. That one creates audit records towards the SYS.AUD$ table, which you'll monitor.
More details concerning the AUDIT statement: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4007.htm#SQLRF01107
contributing to database auditing: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/security.htm#sthref2916
Regards, Take advantage of.
Unsure of if this sounds like what you are after, there is however JetProfiler for MySQL, which'll allow you to inspect exactly what is happening on the database, query-smart. I am quite sure you will find counterparts for Oracle...
You may could rapidly code your personal tool. I'd begin with an easy tool that may export to some CSV file fundamental data about each table to compare: quantity of rows (i.e. a choose count(*)), primary secrets along with a area using the last modification date if available. Then you may operate a diff between your latest CSV using the previous one every so often.
But I am unsure if this sounds like achievable - it is dependent on the quantity of data inside your database.
If searching to validate third party use of your database then looking at logs (enable signing in mysql/oracle) in certain controlled atmosphere should assist you to test the next party methods.
Alternatively making snapshoots to compare should work too.
If you wish to audit third party changes towards the data, when it comes to data validity, then you definitely should allow it to be specific for your business rules also it falls under application level (because the audit process will be based largely around the structure of the data simply searching in the globally formatted diff won't be extremely powerful).
You can check TOAD (Data Diff Viewer).
You also should request yourself so why do you let third party access your database inside a manner that's not controlled, but is just passively checked afterwards? Ideal situation is the fact that exterior connects define and perform all of the validation on integrity rules and business rules while processing the input somewhere.
Switch on binary logging:
Which will record every switch to the database.