Есть ли способ аудита входов в MySQL? Я хотел бы иметь возможность создать имя пользователя для каждого сотрудника и, таким образом, создать журнал аудита для входа. Однако поиск в Google не принес хороших результатов.
Чем больше мы можем провести аудит, тем лучше. По крайней мере, было бы неплохо узнать, кто вошел в систему, когда. Было бы еще лучше увидеть, кто и когда выполнил какой запрос. Журналы в основном предназначены для того, чтобы сообщить клиентам, что они у нас есть, поскольку в базе данных содержится потенциально конфиденциальная информация.
Очевидно, что возможность аудита запросов, выполняемых каждым пользователем (и когда), также даст нам возможность лучше определить, кто является причиной проблемы безопасности, если она возникнет.
источник
Ответы:
Возможно, вы захотите использовать общий журнал запросов .
Одна важная вещь при ведении журнала для безопасности - то, что злоумышленник не может получить доступ к журналу, чтобы стереть следы своего присутствия, поэтому рассмотрите файлы только для добавления .
В Oracle мы можем автоматически отправлять журналы в удаленный системный журнал , но я не верю, что MySQL пока имеет эту функцию. Возможно, вы могли бы подделать его с SNMP, но я не пробовал.
источник
Ответ @Gauis превосходен. Чтобы добавить к этому дальше, вы можете следующее:
MySQL 5.1 теперь позволяет хранить общий журнал и журнал медленных запросов в виде таблиц SQL.
Добавьте это в /etc/my.cnf:
Перезапустите MySQL
Затем, когда mysqld создает общий журнал, вместо текстового файла он создает таблицу в виде таблицы CSV в папке / var / lib / mysql / mysql (база данных схемы mysql).
Просто сделайте это, чтобы увидеть это:
Все соединения будут накапливаться в нем.
Для вас это не очень полезно, когда речь заходит об этом. Это будет просто полное сканирование таблицы каждый раз.
Что делать ??? Преобразуйте это в MyISAM и УКАЗАТЬ СТОЛ !!!!
При желании вы можете поместить полнотекстовый индекс в поле аргумента.
Я только что установил MySQL 5.5.9 на сервере и попробовал это. Вот результат:
Теперь вы можете выполнять запрос по метке времени и искать специальные токены в поле аргумента.
Например, обратите внимание на строку 4 SELECT, которую я сделал. Мой вход был записан в поле аргумента как
lwdba@127.0.0.1 on
. Вы можете отслеживать это.Что делать, если генерал становится слишком большим (поверьте мне, он станет слишком большим очень быстро)
Что делать ???
Кстати, как только вы перевели общий журнал в автономный режим, вы можете запустить его, чтобы собрать отличительные логины, которые что-то сделали в mysqld:
У меня есть клиент с 3-мя серверами БД. Каждый из них с DB Server содержит более 1 000 000 000 (1 миллиардов [тысяч миллионов]) строк. Сценарий, описанный выше, занял около 2,5 часов. Таблица aud_user_host закончилась 27 различными входами в систему.
Тебе должно быть хорошо идти.
Веселитесь с этим, все!
источник
Вместо того, чтобы делать так много вещей вручную, просто установите плагин Audit, который дает более глубокое понимание на уровне пользователя
http://www.mysql.com/products/enterprise/audit.html
Однако он доступен в некоторых коммерческих выпусках MySQL. Было бы замечательно, если бы любой MySQL ветвь добавлялся и в общедоступную версию, чтобы большинство людей получало выгоду от этой функции, в противном случае мы должны полагаться на решение, предоставленное @RolandoMySQLDBA.
источник
@statichippo
Как установить ведение журнала аудита на MySQL.
+ Ведение журнала аудита поддерживает только MySQL Enterprise
+ Вы можете установить ведение журнала аудита в MySQL Community:
1. Скопируйте файл audit_log.so, установив MySQL Enterprise Trial, а затем скопируйте файл audit_log.so в MySQL Community.
2. Скопируйте audit_log.so в plugin_dir как / usr / lib64 / mysql / plugin или вы можете показать каталог плагина следующим образом:
Перейдите в консоль mysql: mysql> покажите глобальные переменные, такие как «% plugin%»;
3. Установите ведение журнала аудита как:
mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
mysql> ПОКАЗАТЬ ПЕРЕМЕННЫЕ НРАВИТСЯ 'audit_log%';
4. Выходной журнал аудита:
tail -f /var/lib/mysql/audit.log
Огромное спасибо.
источник