mysql 记录来自特定用户或 IP 的活动

mysql 记录来自特定用户或 IP 的活动

我有 mysql 服务器。

我的应用程序和外部审计员(使用 mysql workbench 的人员)可以访问该服务器。
审计员有特定的用户和密码以及专用 IP,并且仅授予选择权限。

我需要记录审计员的活动。

我曾在 serverfault 上阅读过类似的问题,但是没有看到任何可接受的答案,即 SQL 服务器是否可以仅为特定用户进行 SQL 日志记录。

但是,是否有可能以及如何记录来自审计员 IP 的网络包,但只记录文本(查询),而不是完整的包?

还有其他解决方案吗?我如何监控审计员在服务器上做什么?

答案1

但是,是否有可能以及如何记录来自审计员 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)

相关内容