MySQL二进制日志是否支持记录Uid';s

MySQL二进制日志是否支持记录Uid';s,mysql,sql,database,binary-log,Mysql,Sql,Database,Binary Log,我想知道是否可以使用MySQL二进制日志记录修改数据库的用户的Uid(用户名) 这对于审计目的是必要的 可能吗 这不是二进制日志的用途-二进制日志记录对数据库所做的所有更改,通常用于复制和恢复 一个可能的替代方案可能是,我相信它以某种方式包括用户名 这都是假设您谈论的是实际的连接用户名,而不是应用程序中任意的“用户” 下面是我刚刚从我的一个日志中提取的一个示例: 111130 13:46:50 130 Connect myusername@localhost on

我想知道是否可以使用MySQL二进制日志记录修改数据库的用户的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),那么您需要有额外的表来存储:来自主表的数据+用户+时间


您也可以查看一下

我刚刚检查了GQL的一些示例输出,并用相关信息的链接更新了我的答案。请注意,GQL可能具有相当大的性能影响。这似乎工作得很好。有没有GUI工具可以查看/过滤/排序这些查询日志?我不知道。我只将它用于查询故障查找,而不是持久性日志记录。如果愿意,您可以将其全部存储在数据库表中而不是文件中,并以这种方式进行处理。