Бесплатный инструмент для просмотра базы данных на предмет изменений? - PullRequest
6 голосов
/ 21 мая 2010

Я ищу инструмент, который может следить за изменениями в базе данных (mysql и oracle).

Когда кто-то вставляет или обновляет что-либо в любой (или выбранной) таблице, я хочу узнать об этом. Это может быть очень полезно для работы с кодом других людей, которые делают магию в базе данных.

Я знаю, что это можно сделать с помощью триггеров ( см. Этот вопрос ), но меня больше интересует какой-то инструмент, который может это сделать, что-то бесплатное.

Ответы [ 5 ]

2 голосов
/ 21 мая 2010

Для Oracle вы ищете команду AUDIT. Этот записывает записи аудита в таблицу SYS.AUD $, которую вы можете отслеживать.

Дополнительная информация о выписке AUDIT: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4007.htm#SQLRF01107

и об аудите базы данных: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/security.htm#sthref2916

С уважением, Роб.

1 голос
/ 21 мая 2010

Включить бинарное ведение журнала:

http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Это будет записывать каждое изменение в базе данных.

1 голос
/ 21 мая 2010

Если вы хотите проверить сторонний доступ к вашей базе данных, то просмотр журналов (включите ведение журнала в mysql / oracle) в некоторой контролируемой среде должен помочь вам протестировать сторонние процедуры .

Альтернативно создание снимков для сравнения тоже должно сработать.

Если вы хотите провести аудит сторонних изменений в данных с точки зрения достоверности данных, то вы должны сделать их специфичными для ваших бизнес-правил, и они подпадают под уровень приложения (поскольку процесс аудита будет зависеть во многом на структуру ваших данных; просто просмотр универсально отформатированного diff не будет очень эффективным).

Вы можете проверить TOAD (Data Diff Viewer).

Кроме того, вы должны спросить себя, почему вы разрешаете сторонним организациям получать доступ к вашей базе данных способом, который не контролируется, а только пассивно проверяется по факту? Идеальная ситуация заключается в том, что внешние интерфейсы определяют и выполняют всю проверку правил целостности и бизнес-правил при обработке входных данных в систему.

1 голос
/ 21 мая 2010

Может быть, вы могли бы быстро написать свой собственный инструмент. Я бы начал с простого инструмента, который мог бы экспортировать в файл CSV основные данные о каждой таблице для сравнения: количество строк (то есть число выборок (*)), первичные ключи и поле с датой последней модификации, если она доступна. Тогда вы можете время от времени проводить различие между последним CSV и предыдущим.

Но я не уверен, возможно ли это - это зависит от количества данных в вашей базе данных.

1 голос
/ 21 мая 2010

Не совсем уверен, что это то, что вам нужно, но есть JetProfiler для MySQL, который позволит вам точно проверять, что происходит с базой данных, по запросу. Я вполне уверен, что есть эквиваленты для Oracle ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...