MySQL二进制日志是否支持记录Uid?

时间:2011-11-30 13:30:38

标签: mysql sql database binary-log

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

这是审计目的所必需的。

这可能吗?

2 个答案:

答案 0 :(得分:1)

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

一个可能的替代方案可能是general query log,我相信它会以某种方式包含用户名。

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

以下是我刚从其中一个日志中提取的示例:

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)都是该用户在该连接上的。

答案 1 :(得分:1)

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

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

您也可以查看Query Log