Как мне проверять изменения в таблице MySQL (используя MySQL 4)?

Меня попросили проверить любые / все изменения в таблице MySQL. Кто-нибудь знает какие-либо инструменты, которые помогут мне в этом, или мне нужно написать собственное решение?

Если я напишу свой собственный аудит, я сначала подумал, что нужно сделать отдельную таблицу и построить строку изменений в коде PHP. Что-то вроде "fieldname1 -> oldvalue | fieldname2 -> oldvalue, ...". Если вы заметили серьезную проблему с этим методом, сообщите мне.

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
6
0
6 079
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Используйте триггер для обнаружения изменений и записи значений до / после в таблицу журнала.

К сожалению, я застрял в использовании MySQL 4. Я отредактирую свой вопрос для уточнения. Тем не менее, отличное предложение.

Haabda 20.10.2008 19:29
Ответ принят как подходящий

Единственный надежный способ зафиксировать все изменения в таблице БД - использовать триггеры на сервере. Риск модификации вашего собственного кода для аудита изменений заключается в том, что изменения от другого приложения / пользователя и т. д. Не будут зафиксированы.

Сказав это, я не уверен, что в MySQL 4 была поддержка триггеров.

Думаю, мне просто нужно будет реализовать свое обратное решение. Возможно, я смогу получить разрешение на обновление до MySQL 5.

Haabda 20.10.2008 19:36

Триггеры были добавлены в MySQL 5.0. На данный момент действительно нет веских причин не обновляться с 4 до 5. 5.1 находится в кандидате на выпуск, а 6.0 находится в разработке.

acrosman 21.10.2008 01:29

могут ли триггеры отслеживать, какой пользователь вносит изменения?

andho 25.10.2011 12:03

SoftTree DB Audit поддерживает MySQL, может делать то, что вам нужно:

http://www.softtreetech.com/idbaudit.htm

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

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

Другие вопросы по теме