Я работаю с большим проектом, в котором участвуют многие люди. Мы используем одну и ту же базу данных MySQL для разработки. Вопрос в том, как я могу узнать, кто сделал что-то (вставить, обновить, удалить, запустить запрос и т. Д.) В базе данных, когда они это сделали и что они сделали. Предполагая, что у каждого есть другой аккаунт.Регистрация действий пользователя в mysql
ответ
Вы можете использовать общий журнал.
Он будет регистрировать сведения о клиентах для подключения, отключения и запросов, запущенных в базе данных.
Чтобы включить его, установите следующее свойство в my.cnf:
general_log_file = /path/to/query.log
general_log = 1
Или, вы можете установить его из консоли:
SET global general_log = 1;
Вам нужно будет выполнить все ваши функции или процедуры и адаптировать их для вставки/обновления идентификатора «последнего редактора» и добавления поля для этого идентификатора к вашим таблицам. Это не так просто.
Что делать, если кто-то выполняет чистый запрос, например, обновляет некоторые строки в таблице. Могу ли я узнать, кто выполнил этот запрос? и каков был этот запрос? Что я хочу сделать здесь, это регистрировать каждое действие пользователя при работе с базой данных. –
довольно тщательное рассмотрение этого здесь: http://dba.stackexchange.com/questions/112128/how-to-know-which-user-update-insert-or-delete-in-mysql-database –
Хорошо. Я думаю, это должно хорошо работать. –