Бесплатный инструмент для наблюдения базы данных за изменениями?

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

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

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

7
задан Community 23 May 2017 в 12:18
поделиться

5 ответов

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

1
ответ дан 7 December 2019 в 09:57
поделиться

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

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

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

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

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

1
ответ дан 7 December 2019 в 09:57
поделиться

Для 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, Роб.

2
ответ дан 7 December 2019 в 09:57
поделиться

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

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

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

1
ответ дан 7 December 2019 в 09:57
поделиться

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

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

1
ответ дан 7 December 2019 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: