2016-09-29 11 views
0

Я работаю с большим проектом, в котором участвуют многие люди. Мы используем одну и ту же базу данных MySQL для разработки. Вопрос в том, как я могу узнать, кто сделал что-то (вставить, обновить, удалить, запустить запрос и т. Д.) В базе данных, когда они это сделали и что они сделали. Предполагая, что у каждого есть другой аккаунт.Регистрация действий пользователя в mysql

ответ

1

Вы можете использовать общий журнал.

Он будет регистрировать сведения о клиентах для подключения, отключения и запросов, запущенных в базе данных.

Чтобы включить его, установите следующее свойство в my.cnf:

general_log_file = /path/to/query.log 
general_log  = 1 

Или, вы можете установить его из консоли:

SET global general_log = 1; 

См: http://dev.mysql.com/doc/refman/5.7/en/query-log.html

+0

Хорошо. Я думаю, это должно хорошо работать. –

1

Вам нужно будет выполнить все ваши функции или процедуры и адаптировать их для вставки/обновления идентификатора «последнего редактора» и добавления поля для этого идентификатора к вашим таблицам. Это не так просто.

+0

Что делать, если кто-то выполняет чистый запрос, например, обновляет некоторые строки в таблице. Могу ли я узнать, кто выполнил этот запрос? и каков был этот запрос? Что я хочу сделать здесь, это регистрировать каждое действие пользователя при работе с базой данных. –

+0

довольно тщательное рассмотрение этого здесь: http://dba.stackexchange.com/questions/112128/how-to-know-which-user-update-insert-or-delete-in-mysql-database –