2

我想知道是否可以使用 MySQL 二进制日志来记录对数据库进行修改的用户的 Uid(用户名)。

这对于审计目的是必要的。

那可能吗?

4

2 回答 2

1

这不是二进制日志的用途——二进制日志记录对数据库所做的所有更改,通常用于复制和恢复。

一个可能的替代方案可能是通用查询日志,我相信它以某种方式包含用户名。

这一切都假设您正在谈论实际的连接用户名,而不是应用程序中的某个任意“用户”。

这是我刚刚从我的一个日志中提取的一个示例:

111130 13:46:50   130 Connect   myusername@localhost on
                  130 Init DB   mydatabase
                  130 Query     SELECT somefields FROM sometable
                  130 Query     SELECT somefields FROM sometable
                  130 Quit

如您所见,您获得了连接用户名,然后具有该连接 ID(在本例中为 130)的任何内容都是该用户在该连接上的。

于 2011-11-30T13:33:37.723 回答
1

二进制日志主要用于复制目的,它们不允许存储除数据更改之外的任何辅助信息。

如果您想存储可查看的日志(因为二进制日志的设计方式只能使用 mysql),您将需要有额外的表来存储:来自主表的数据 + 用户 + 时间。

您也可以查看查询日志

于 2011-11-30T13:40:50.667 回答