小编Bea*_*eat的帖子

记录 MySQL 数据库更改查询和用户

出于安全原因,我需要在服务器端(运行 Debian 6.0 Squeeze)记录所有可能更改 MySQL DB(v. 5.1)内容的查询以及发布它的用户。我不得不排除

  • 由于性能问题的通用查询日志(它记录了所有内容,而且 IO 太多)
  • 二进制日志,因为它不记录用户的姓名。
  • 使用诸如ngrep捕获网络流量和过滤器之类的工具UPDATEDELETE因为这会让我处理事务并且我不知道收到的查询是否真的被执行了。

我找不到任何可以让我更改 MySQL 固有日志行为的设置,因此我正在寻找其他解决方案。到目前为止,我提出了两种可能性:

  • 将一般查询日志写入命名管道并将过滤器和写入器附加到管道的另一端 - 但我担心这...
  • 将相关日志分别传输到服务器,但那样我必须发送查询两次(一次用于数据库,一次用于日志记录),很难确保日志与数据库同步(事务、锁等) .),并且出于安全原因,信任客户端真正发送日志可能是不明智的

背景:

  • 用户通过 Java 桌面应用程序访问数据库,该应用程序打开到 MySQL 服务器的 SSH 隧道
  • 我使用 EclipseLink 作为持久性提供者
  • 该应用程序大量使用事务
  • 服务器在共享环境中运行

您对如何执行我的日志记录有更好的想法吗?

mysql logs

5
推荐指数
1
解决办法
3492
查看次数

触发器可以访问查询字符串吗?

我正在考虑在 MySQL (v. 5.1) 中使用触发器作为日志记录机制,因此我希望触发器获取查询字符串以便将其存储在另一个表中。

我在 MySQL 文档中找不到类似的东西,所以我希望答案是否定的——但我仍然希望我忽略了一些东西。

PS:这个问题与IcarusNM 对我的问题“记录 MySQL 数据库更改查询和用户”的回答有关

mysql trigger

5
推荐指数
1
解决办法
4295
查看次数

标签 统计

mysql ×2

logs ×1

trigger ×1