Я ищу инструмент, который может наблюдать базу данных (mysql и оракул) для изменений.
Когда кто-то вставляет или обновляет что-то в любом (или выбранный) таблица, я хочу узнать об этом. Это могло быть очень полезно для работы с людьми других код, которые делают некоторое волшебство в базе данных.
Я знаю, что это может быть сделано с помощью триггеров (см. этот вопрос), но я больше интересуюсь некоторым инструментом, который может сделать это, что-то свободное.
Не совсем уверен, что это именно то, что вам нужно, но есть JetProfiler для MySQL, который позволит вам точно проверять, что происходит в базе данных, по запросу. Я уверен, что у Oracle есть эквиваленты ...
Если вы хотите проверить доступ третьих лиц к вашей базе данных, то просмотр журналов (включите ведение журнала в mysql / oracle) в некоторой контролируемой среде должен помочь вам протестировать процедуры сторонних .
В качестве альтернативы также должно работать создание снимков для сравнения.
Если вы хотите проводить аудит сторонних изменений в данных с точки зрения достоверности данных, то вам следует сделать это специфичным для ваших бизнес-правил, и это подпадает под уровень приложения (поскольку процесс аудита будет зависеть от в основном от структуры ваших данных; простой просмотр универсально отформатированного diff не будет очень эффективным).
Вы можете проверить TOAD (Data Diff Viewer).
Также вы должны спросить себя, почему вы позволяете сторонним лицам получать доступ к своей базе данных неконтролируемым образом, а только пассивно проверяется постфактум? Идеальная ситуация состоит в том, что внешние интерфейсы определяют и выполняют всю проверку правил целостности и бизнес-правил при обработке входных данных в систему.
Для Oracle вы ищете команду AUDIT. Она записывает записи аудита в таблицу SYS.AUD$, которую вы можете контролировать.
Больше информации об операторе AUDIT: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4007.htm#SQLRF01107
and about database auditing: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/security.htm#sthref2916
Regards, Роб.
Включите двоичное ведение журнала:
http://dev.mysql.com/doc/refman/5.0/en/binary-log.html
Это будет записывать каждое изменение в базе данных.
Может быть, вы могли бы быстро написать свой собственный инструмент. Я бы начал с простого инструмента, который мог бы экспортировать в файл CSV основные данные о каждой таблице для сравнения: количество строк (то есть количество выбранных (*)), первичные ключи и поле с последней датой модификации, если таковая имеется. Затем вы можете время от времени проводить сравнение последнего CSV-файла с предыдущим.
Но я не уверен, возможно ли это - это зависит от количества данных в вашей базе данных.