У меня есть сервер mysql.
К серверу обращается мое приложение и внешний аудитор (человек, использующий рабочую среду mysql).
У аудитора есть конкретный пользователь, пароль и выделенный IP-адрес, и он предоставляется только для определенных привилегий.
Мне нужно регистрировать действия аудитора.
Я читал похожие вопросы здесь о serverfault, но я не видел приемлемых ответов о том, что можно вести журнал sql с помощью сервера sql только для определенного пользователя.
Но возможно ли и как регистрировать сетевые пакеты с IP-адреса аудиторов, но только текст (запросы), а не полные пакеты?
Любые другие решения, как я могу отслеживать, что аудитор делал на сервере?
Но возможно ли и как регистрировать сетевые пакеты с IP-адреса аудиторов, но только текст (запросы), а не полные пакеты?
Да, это возможно:
tcpdump -s0 -i eth0 src host auditors.ip and dst port 3306 -w mysql.pcap
то вы можете фильтровать только запросы MySQL, запустив:
while read stream; do \
tshark -qz follow,tcp,ascii,$stream -r mysql.pcap; done \
< <(tshark -R "mysql" -T fields -e tcp.stream -r mysql.pcap | sort | uniq)