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

这是审计目的所必需的。

那可能吗?

有帮助吗?

解决方案

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

可能的选择可能是 一般查询日志, ,我相信这在某种程度上包括用户名。

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

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

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

其他提示

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

如果要存储可查看的日志(因为二进制日志是以这种方式设计的,只能使用mySQL),则需要存储其他表格:来自主表 +用户 +时间的数据。

您也可以看看 查询日志

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top