Tulains Córdova Asked: 2014-06-28 11:05:52 +0800 CST2014-06-28 11:05:52 +0800 CST 2014-06-28 11:05:52 +0800 CST 审计 MySQL 表上的 DML 操作 772 我们有几个 MySQL 5.0 数据库。 我们一直遇到安全问题,例如未经授权修改记录。 我们需要对 DML 操作实施某种审计,以识别对某些关键表执行 UPDATE 或 DELETE 操作的用户。 我一直在谷歌上搜索任何会激活此类审核的 my.conf 选项,但无济于事。 mysql security 1 个回答 Voted Best Answer dartonw 2014-06-28T11:35:29+08:002014-06-28T11:35:29+08:00 破坏性最小的方法是使用通用查询日志。查询日志输出可以是数据库表,也可以是日志(文本)文件;但是它不支持通过 DML 操作或数据库进行过滤,因此所有数据库上的所有 SELECT 语句也将被记录。显然,您可以稍后过滤日志记录输出。 另请注意: session sql_log_off 变量可以设置为 ON 或 OFF 以禁用或启用当前连接的一般查询日志记录。 这意味着通过一些注入的逻辑,您可以想象禁用 SELECT 的日志记录。 另一种解决方案是在 UPDATE、INSERT、DELETE 上使用触发器。这将直接影响有问题的数据库,但不会影响在同一实例中运行的其他数据库。 另请参阅此处和此处的 SO 问题。
破坏性最小的方法是使用通用查询日志。查询日志输出可以是数据库表,也可以是日志(文本)文件;但是它不支持通过 DML 操作或数据库进行过滤,因此所有数据库上的所有 SELECT 语句也将被记录。显然,您可以稍后过滤日志记录输出。
另请注意:
这意味着通过一些注入的逻辑,您可以想象禁用 SELECT 的日志记录。
另一种解决方案是在 UPDATE、INSERT、DELETE 上使用触发器。这将直接影响有问题的数据库,但不会影响在同一实例中运行的其他数据库。
另请参阅此处和此处的 SO 问题。