每当可审计事件发生时,MySQL服务器调用审计日志插件将审计记录写入其日志文件。通常在插件启动后写入的第一个审计记录包含服务器描述和启动选项。后面的元素表示事件,如客户端连接和断开连接事件、执行的SQL语句等。只记录顶级语句,而不记录触发器或存储过程等存储程序中的语句。语句引用的文件的内容加载数据
没有记录。
要选择审计日志插件用于写入日志文件的日志格式,请设置audit_log_format
服务器启动时的系统变量。这些格式是可用的:
新型XML格式(
audit_log_format = NEW
:一种与Oracle Audit Vault相比具有更好兼容性的XML格式。MySQL 8.0默认使用新型XML格式。旧式XML格式(
audit_log_format =老
):旧MySQL系列中默认使用的原始审计日志格式。JSON格式(
audit_log_format = JSON
)
缺省情况下,审计日志文件内容采用新型XML格式,不进行压缩和加密。
有关更改日志格式时要考虑的问题的信息,请参见
下面是一个新样式XML格式的日志文件示例( 审计日志文件被写入XML,使用UTF-8(每个字符最多4个字节)。根元素是 元素内 有些元素出现在每一个 元素的顺序 元素值不是固定长度的。长值可能会被截断,如后面给出的元素描述所示。 的 不作为XML字符有效的字符使用数字字符引用进行编码。有效的XML字符包括: 以下元素在每个 表示生成审计事件的指令类型的字符串,例如服务器从客户端接收到的命令。 例子: 一些常见的 可能的值为 这些值中的许多对应于 事件有 每一个 审计记录的唯一标识符。该值由序列号和时间戳组成,格式为 例子: 中表示UTC值的字符串 例子: 中的下列元素是可选的 指示所执行操作类型的字符串。 例子: 的值对应 从MySQL 8.0.19开始,带有 例子: 如果事件中没有任何连接属性,则不会记录任何连接属性 表示客户端连接标识符的无符号整数。方法返回的值相同 例子: 到服务器的连接的安全状态。允许的值为 例子: 表示默认数据库名称的字符串。 例子: 表示客户端主机名的字符串。 例子: 表示客户端IP地址的字符串。 例子: 表示MySQL服务器版本的字符串。这就等于 例子: 表示认证过程中使用的外部用户名的字符串,由用于认证客户端的插件设置。使用本地(内置)MySQL身份验证,或者如果插件没有设置该值,则此元素为空。该值与 表示构建或运行服务器的操作系统的字符串。 例子: 一个字符串,表示服务器验证客户端的用户。这是服务器用于权限检查的用户名,可能与 例子: 表示代理用户的字符串(请参阅 表示服务器ID的无符号整数。这就等于 例子: 表示SQL语句文本的字符串。取值为空。长值可能会被截断。与审计日志文件本身一样,该字符串使用UTF-8写入(每个字符最多4个字节),因此该值可能是转换的结果。例如,原始语句可能是作为SJIS字符串从客户端接收的。 例子: 一个字符串,表示MySQL服务器启动时在命令行或选项文件中给出的选项。第一个选项是服务器可执行文件的路径。 例子: 表示命令状态的无符号整数:0表示成功,非0表示发生错误。这就等于 审计日志中没有SQLSTATE值和错误提示。要查看错误代码、SQLSTATE值和消息之间的关联,请参见服务器错误信息参考. 警告不会被记录。 例子: 表示命令状态的无符号整数:0表示成功,1表示发生错误。 的 例子: 表示表名的字符串。 例子: 表示客户端发送的用户名的字符串。这可能与 例子: 无符号整数,表示审计日志文件格式的版本。 例子:
audit_log_format = NEW
),为方便阅读而略作调整:<?XML版本="1.0"编码="utf-8"?><审计>< AUDIT_RECORD ><时间>2019-10-03T14:06:33 UTC
<审计>
.根元素包含< AUDIT_RECORD >
元素,每个元素提供关于审计事件的信息。当审计日志插件开始写入一个新的日志文件时,它会写入XML声明并打开<审计>
根元素标记。当插件关闭一个日志文件时,它写入关闭> < /审计
根元素标记。当文件打开时,关闭标记不存在。< AUDIT_RECORD >
元素具有以下特征:
< AUDIT_RECORD >
元素。其他是可选的,可能会根据审计记录类型出现。< AUDIT_RECORD >
元素不能保证。<
,>
,"
,&
字符编码为& lt;
,比;
,“;
,,
,分别。NUL字节(U+00)编码为?
的性格。# x9 | # xA | # xD | (# x20的——# xD7FF) | (# xE000 - # xFFFD) | (# x10000 - # x10FFFF)
< AUDIT_RECORD >
元素:
<名称>
查询<名称> < /名称>
<名称>
价值观:Audit开始审计,可能是服务器启动时间Connect客户端连接,也就是登录Query一条SQL语句(直接执行)Prepare SQL语句的准备;通常后跟Execute Execute执行SQL语句;通常在Prepare Shutdown Server Shutdown后使用Quit当客户端断开连接NoAudit审计已关闭
审计
,Binlog转储
,更改用户
,密切的支撑
,连接了
,连接
,创建数据库
,守护进程
,调试
,延迟插入
,删除数据库
,执行
,获取
,字段列表
,初始化数据库
,杀了
,长数据
,NoAudit
,平
,准备
,Processlist
,查询
,辞职
,刷新
,注册的奴隶
,复位支撑
,设置选项
,关闭
,睡眠
,统计数据
,表转储
,TableDelete
,TableInsert
,TableRead
,TableUpdate
,时间
.COM_
命令中列出的值xxx
my_command.h
头文件。例如,创建数据库
而且更改用户
对应于COM_CREATE_DB
而且COM_CHANGE_USER
,分别。<名称>
的值表格
陪XXX
查询
事件。例如,下面的语句生成一个查询
事件,两个TableRead
事件和一个TableInsert
事件:INSERT INTO t3 SELECT t1*从t1连接t2;
表格
事件包含XXX
< DB >
而且<表>
元素来标识事件所引用的表。< RECORD_ID >
.当审计日志插件打开审计日志文件时,它将序列号初始化为审计日志文件的大小,然后对记录的每条记录将序列加1。时间戳是一个UTC值SEQ_TIMESTAMP
格式,指示审计日志插件打开文件的日期和时间。YYYY-MM-DD
Thh: mm: ss
12 _2019-10-03t14:06:33 < RECORD_ID > < / RECORD_ID >
<时间>
表示产生审计事件的日期和时间的格式。例如,从客户端接收到的与执行SQL语句相对应的事件具有YYYY-MM-DD
Thh: mm: ss
UTC<时间>
值在语句结束后发生,而不是在收到语句时发生。<时间> 2019 - 10 - 03 t14:09:45 UTC时间戳> < /
< AUDIT_RECORD >
元素。其中许多只发生在特定的<名称>
元素值。
< COMMAND_CLASS >
< COMMAND_CLASS > drop_table < / COMMAND_CLASS >
声明/ sql /
命令计数器。例如,xxx
xxx
是drop_table
而且选择
为删除表
而且选择
分别陈述。下面的语句显示可能的名称:SELECT REPLACE(EVENT_NAME, 'statement/sql/', '') AS name FROM performance_schema事件s_statements_summary_global_by_event_name WHERE EVENT_NAME LIKE 'statement/sql/%' ORDER BY name;
< CONNECTION_ATTRIBUTES >
< COMMAND_CLASS >
的价值连接
可能包括< CONNECTION_ATTRIBUTES >
元素显示客户端在连接时传递的连接属性。(有关这些属性的信息,它们也在性能模式表中公开,请参见< CONNECTION_ATTRIBUTES >元素包含一个<属性>
元素的每个属性,每个属性包含<名称>
而且<值>
元素来分别指示属性名和值。< CONNECTION_ATTRIBUTES >
元素出现。如果连接尝试不成功,客户端没有传递任何属性,或者连接发生在内部,例如在服务器启动期间或由插件启动时,就会发生这种情况。< CONNECTION_ID >
CONNECTION_ID ()
在会话内执行函数。127年< CONNECTION_ID > < / CONNECTION_ID >
< CONNECTION_TYPE >
TCP / IP
(TCP/IP连接未加密建立),SSL / TLS
(通过加密建立TCP/IP连接),套接字
(Unix套接字文件连接),命名管道
(Windows命名管道连接),以及共享内存
(Windows共享内存连接)。< CONNECTION_TYPE > SSL / TLS < / CONNECTION_TYPE >
< DB >
< DB > < / DB >测试
主机> <
> <主机主机主机> < /
< IP >
< IP > 127.0.0.1 < / IP >
< MYSQL_VERSION >
(版本)
函数或版本
系统变量。< MYSQL_VERSION > 5.7.21-log < / MYSQL_VERSION >
< OS_LOGIN >
external_user
系统变量(见jeffrey < / OS_LOGIN < OS_LOGIN > >
< OS_VERSION >
< OS_VERSION > x86_64-Linux < / OS_VERSION >
< PRIV_USER >
<用户名>
价值。jeffrey < / PRIV_USER < PRIV_USER > >
< PROXY_USER >
开发人员< PROXY_USER > < / PROXY_USER >
< SERVER_ID >
server_id
系统变量。1 < SERVER_ID > < / SERVER_ID >
< SQLTEXT >
DELETE FROM t1
< STARTUP_OPTIONS >
< >状态
mysql_errno ()
C语言API函数。参见< STATUS_CODE >
以了解它与< >状态
.<状态> 1051 > < /状态
< STATUS_CODE >
STATUS_CODE
值不同于状态
值:STATUS_CODE
为0表示成功,为1表示错误,这与审计库的EZ_collector消费者兼容。状态
是值mysql_errno ()
C语言API函数。成功为0,错误为非0,因此错误不一定为1。< STATUS_CODE > 0 < / STATUS_CODE >
<表>
<表> t3表> < /
<用户名>
< PRIV_USER >
价值。<版本>
<版本> 1 > < /版本
下面是一个旧式XML格式的示例日志文件(audit_log_format =老
),为方便阅读而略作调整:
<?XML版本="1.0"编码="utf-8"?><审计> ... ...
审计日志文件被写入XML,使用UTF-8(每个字符最多4个字节)。根元素是<审计>
.根元素包含< AUDIT_RECORD >
元素,每个元素提供关于审计事件的信息。当审计日志插件开始写入一个新的日志文件时,它会写入XML声明并打开<审计>
根元素标记。当插件关闭一个日志文件时,它写入关闭> < /审计
根元素标记。当文件打开时,关闭标记不存在。
的属性< AUDIT_RECORD >
元素具有以下特征:
一些属性出现在每个
< AUDIT_RECORD >
元素。其他是可选的,可能会根据审计记录类型出现。属性中的属性顺序
< AUDIT_RECORD >
元素不能保证。属性值不是固定长度的。长值可能会被截断,如后面给出的属性描述所示。
的
<
,>
,"
,&
字符编码为& lt;
,比;
,“;
,,
,分别。NUL字节(U+00)编码为?
的性格。不作为XML字符有效的字符使用数字字符引用进行编码。有效的XML字符包括:
# x9 | # xA | # xD | (# x20的——# xD7FF) | (# xE000 - # xFFFD) | (# x10000 - # x10FFFF)
以下属性在每个< AUDIT_RECORD >
元素:
的名字
表示生成审计事件的指令类型的字符串,例如服务器从客户端接收到的命令。
例子:
NAME = "查询"
一些常见的
的名字
价值观:Audit开始审计,可能是服务器启动时间Connect客户端连接,也就是登录Query一条SQL语句(直接执行)Prepare SQL语句的准备;通常后跟Execute Execute执行SQL语句;通常在Prepare Shutdown Server Shutdown后使用Quit当客户端断开连接NoAudit审计已关闭
可能的值为
审计
,Binlog转储
,更改用户
,密切的支撑
,连接了
,连接
,创建数据库
,守护进程
,调试
,延迟插入
,删除数据库
,执行
,获取
,字段列表
,初始化数据库
,杀了
,长数据
,NoAudit
,平
,准备
,Processlist
,查询
,辞职
,刷新
,注册的奴隶
,复位支撑
,设置选项
,关闭
,睡眠
,统计数据
,表转储
,TableDelete
,TableInsert
,TableRead
,TableUpdate
,时间
.这些值中的许多对应于
COM_
命令中列出的值xxx
my_command.h
头文件。例如,“创建DB”
而且“更改用户”
对应于COM_CREATE_DB
而且COM_CHANGE_USER
,分别。事件有
的名字
的值表格
陪XXX
查询
事件。例如,下面的语句生成一个查询
事件,两个TableRead
事件和一个TableInsert
事件:INSERT INTO t3 SELECT t1*从t1连接t2;
每一个
表格
事件XXX
DB
而且表格
属性来标识事件引用的表。连接
旧式XML审计日志格式的事件不包括连接属性。RECORD_ID
审计记录的唯一标识符。该值由序列号和时间戳组成,格式为
.当审计日志插件打开审计日志文件时,它将序列号初始化为审计日志文件的大小,然后对记录的每条记录将序列加1。时间戳是一个UTC值SEQ_TIMESTAMP
格式,指示审计日志插件打开文件的日期和时间。YYYY-MM-DD
Thh: mm: ss
例子:
RECORD_ID = " 12 _2019-10-03t14:25:00 "
时间戳
中表示UTC值的字符串
表示产生审计事件的日期和时间的格式。例如,从客户端接收到的与执行SQL语句相对应的事件具有YYYY-MM-DD
Thh: mm: ss
UTC时间戳
值在语句结束后发生,而不是在收到语句时发生。例子:
时间戳= " 2019 - 10 - 03 - t14:25:32 UTC”
中的下列属性是可选的< AUDIT_RECORD >
元素。的特定值的元素才会出现这种情况的名字
属性。
COMMAND_CLASS
指示所执行操作类型的字符串。
例子:
COMMAND_CLASS = " drop_table "
的值对应
声明/ sql /
命令计数器。例如,xxx
xxx
是drop_table
而且选择
为删除表
而且选择
分别陈述。下面的语句显示可能的名称:SELECT REPLACE(EVENT_NAME, 'statement/sql/', '') AS name FROM performance_schema事件s_statements_summary_global_by_event_name WHERE EVENT_NAME LIKE 'statement/sql/%' ORDER BY name;
CONNECTION_ID
表示客户端连接标识符的无符号整数。方法返回的值相同
CONNECTION_ID ()
在会话内执行函数。例子:
CONNECTION_ID = " 127 "
CONNECTION_TYPE
到服务器的连接的安全状态。允许的值为
TCP / IP
(TCP/IP连接未加密建立),SSL / TLS
(通过加密建立TCP/IP连接),套接字
(Unix套接字文件连接),命名管道
(Windows命名管道连接),以及共享内存
(Windows共享内存连接)。例子:
CONNECTION_TYPE = " SSL / TLS "
DB
表示默认数据库名称的字符串。
例子:
DB = "测试"
宿主
表示客户端主机名的字符串。
例子:
主机= " localhost "
知识产权
表示客户端IP地址的字符串。
例子:
IP = " 127.0.0.1 "
MYSQL_VERSION
表示MySQL服务器版本的字符串。这就等于
(版本)
函数或版本
系统变量。例子:
MYSQL_VERSION = " 5.7.21-log "
OS_LOGIN
表示认证过程中使用的外部用户名的字符串,由用于认证客户端的插件设置。使用本地(内置)MySQL身份验证,或者如果插件没有设置该值,此属性为空。该值与
external_user
系统变量(见OS_LOGIN = " jeffrey "OS_VERSION
表示构建或运行服务器的操作系统的字符串。
例子:
OS_VERSION = " x86_64-Linux "
PRIV_USER
一个字符串,表示服务器验证客户端的用户。这是服务器用于权限检查的用户名,它可能与
用户
价值。例子:
PRIV_USER = " jeffrey "
PROXY_USER
表示代理用户的字符串(请参阅PROXY_USER =“开发人员”
SERVER_ID
表示服务器ID的无符号整数。这就等于
server_id
系统变量。例子:
SERVER_ID = " 1 "
SQLTEXT
表示SQL语句文本的字符串。取值为空。长值可能会被截断。与审计日志文件本身一样,该字符串使用UTF-8写入(每个字符最多4个字节),因此该值可能是转换的结果。例如,原始语句可能是作为SJIS字符串从客户端接收的。
例子:
SQLTEXT="DELETE FROM t1"
STARTUP_OPTIONS
一个字符串,表示MySQL服务器启动时在命令行或选项文件中给出的选项。
例子:
STARTUP_OPTIONS = "——端口= 3306 log_output =文件”
状态
表示命令状态的无符号整数:0表示成功,非0表示发生错误。这就等于
mysql_errno ()
C语言API函数。参见STATUS_CODE
以了解它与状态
.审计日志中没有SQLSTATE值和错误提示。要查看错误代码、SQLSTATE值和消息之间的关联,请参见服务器错误信息参考.
警告不会被记录。
例子:
状态= " 1051 "
STATUS_CODE
表示命令状态的无符号整数:0表示成功,1表示发生错误。
的
STATUS_CODE
值不同于状态
值:STATUS_CODE
为0表示成功,为1表示错误,这与审计库的EZ_collector消费者兼容。状态
是值mysql_errno ()
C语言API函数。成功为0,错误为非0,因此错误不一定为1。例子:
STATUS_CODE = " 0 "
表格
表示表名的字符串。
例子:
表= " t3 "
用户
表示客户端发送的用户名的字符串。这可能与
PRIV_USER
价值。版本
无符号整数,表示审计日志文件格式的版本。
例子:
VERSION = " 1 "
对于json格式的审计日志记录(audit_log_format = JSON
),则日志文件内容为aJSON
数组,其中每个数组元素表示一个审计事件为JSON
键值对的哈希。完整事件记录的示例将在本节后面出现。以下是部分事件摘录:
[{“时间戳”:“2019-10-03 13:50:01”、“id”:0,“类”:“审计”、“事件”:“启动”,…},{“时间戳”:“2019-10-03 15:02:32”、“id”:0,“类”:“连接”、“事件”:“连接”,…},……{“时间戳”:“2019-10-03 17:37:26”,“id”:0,“类”:“table_access”、“事件”:“插入”,…}……]
审计日志文件使用UTF-8写入(每个字符最多4个字节)。当审计日志插件开始写入一个新的日志文件时,它会写入开头[
数组标记。当插件关闭一个日志文件时,它写入关闭]
数组标记。当文件打开时,关闭标记不存在。
审计记录中的项目具有以下特征:
有些项目出现在每个审计记录中。其他是可选的,可能会根据审计记录类型出现。
不保证审计记录中项目的顺序。
项值不是固定长度的。长值可能会被截断,如后面给出的项描述所示。
的
"
而且\
字符编码为\”
而且\ \
,分别。
下面的示例显示了不同事件类型的JSON对象格式(由类
而且事件
Items),为了可读性稍微重新格式化:
审计启动事件:
{“时间戳”:“2019-10-03 14:21:56”,“id”:0,“类”:“审计”、“事件”:“创业”、“connection_id”:0,“startup_data”:{“server_id”:1、“os_version”:“i686-Linux”、“mysql_version”:“5.7.21-log”,“参数”:[“/ usr /地方/ mysql / bin / mysqld“,”——loose-audit-log-format = JSON ", "——日志错误=日志。犯错”、“mysqld——pid文件=。Pid ", "——port=3306"]}}
当审计日志插件作为服务器启动的结果启动时(而不是在运行时启用),connection_id
设置为0,和账户
而且登录
不存在。
审计关机事件:
{“时间戳”:“2019-10-03 14:28:20”,“id”:3,“类”:“审计”、“事件”:“关闭”、“connection_id”:0,“shutdown_data”:{“server_id”:1}}
当审计日志插件由于服务器关闭而被卸载时(而不是在运行时禁用),connection_id
设置为0,和账户
而且登录
不存在。
连接或更改用户事件:
{“时间戳”:“2019-10-03 14:23:18”,“id”:1、“类”:“连接”、“事件”:“连接”、“connection_id”:5日“解释”:{“用户”:“根”、“主机”:“localhost”},“登录”:{“用户”:“根”、“操作系统”:“”,“知识产权”:“::1”、“代理 ": "" }, " connection_data”:{“connection_type”:“ssl”,“状态”:0,“分贝”:“测试”、“connection_attributes”:{“_pid”:“43236”,……"program_name": "mysqladmin"}}}
断开事件:
{“时间戳”:“2019-10-03 14:24:45”,“id”:3,“类”:“连接”、“事件”:“脱节”、“connection_id”:5日“解释”:{“用户”:“根”、“主机”:“localhost”},“登录”:{“用户”:“根”、“操作系统”:“”,“知识产权”:“::1”、“代理 ": "" }, " connection_data”:{“connection_type”:“ssl}}
查询事件:
{“时间戳”:“2019-10-03 14:23:35”,“id”:2中,“类”:“将军”,“事件”:“状态”,“connection_id”:5日“解释”:{“用户”:“根”、“主机”:“localhost”},“登录”:{“用户”:“根”、“操作系统”:“”,“知识产权”:“::1”、“代理 ": "" }, " general_data”:{“命令”:“查询”、“sql_command”:“show_variables”、“查询”:“变量”,“状态”:0}}
表访问事件(读,删除,插入,更新):
{“时间戳”:“2019-10-03 14:23:41”,“id”:0,“类”:“table_access”、“事件”:“插入”,“connection_id”:5日“解释”:{“用户”:“根”、“主机”:“localhost”},“登录”:{“用户”:“根”、“操作系统”:“”,“知识产权”:“127.0.0.1”、“代理 ": "" }, " table_access_data”:{“分贝”:“测试”,“表”:“t1”、“查询”:“插入t1 (i)值(1),(2),(3)”,“sql_command”:"插入"}}
以下列表中的项出现在json格式审计记录的顶层:每个项的值要么是标量,要么是JSON
散列。对于具有哈希值的项,描述只列出该哈希中的项名称。有关二级哈希项的更完整描述,请参阅本节后面的内容。
账户
与事件关联的MySQL帐户。属性的值是包含这些项的哈希值
CURRENT_USER ()
部分内的功能:用户
,宿主
.例子:
“账户”:{“用户”:“根”、“主机”:“localhost”}
类
表示事件类的字符串。类定义事件的类型,当与
事件
项,该项指定事件子类。例子:
“类”:“连接”
下表显示了允许的组合
类
而且事件
值。connection_data
客户端连接信息。该值是包含以下项的散列:
connection_type
,状态
,db
,而且可能connection_attributes
.项的审计记录才会出现此项类
的价值连接
.例子:
"connection_data": {"connection_type": "ssl", "status": 0, "db": "test"}
从MySQL 8.0.19开始,带有
类
的价值连接
而且事件
的价值连接
可能包括connection_attributes
项显示客户端在连接时传递的连接属性。(有关这些属性的信息,它们也在性能模式表中公开,请参见connection_attributesValue是一个散列,通过名称和值表示每个属性。例子:
“connection_attributes”:{“_pid”:“43236”,“_os”:“osx10.14”、“_platform”:“x86_64”,“_client_version”:“8.0.19”、“_client_name”:“libmysql”、“program_name”:“mysqladmin”}
如果事件中没有任何连接属性,则不会记录任何连接属性
connection_attributes
项目出现了。如果连接尝试不成功,客户端没有传递任何属性,或者连接发生在内部,例如在服务器启动期间或由插件启动时,就会发生这种情况。connection_id
表示客户端连接标识符的无符号整数。方法返回的值相同
CONNECTION_ID ()
在会话内执行函数。例子:
“connection_id”:5
事件
表示事件类的子类的字符串。类一起使用时,子类定义事件的类型
类
项,该项指定事件类。有关更多信息,请参见类
项目描述。例子:
“事件”:“连接”
general_data
关于已执行语句或命令的信息。该值是包含以下项的散列:
命令
,sql_command
,查询
,状态
.项的审计记录才会出现此项类
的价值一般
.例子:
"general_data": {"command": "Query", "sql_command": "show_variables", "Query": "SHOW VARIABLES", "status": 0}
id
表示事件ID的无符号整数。
例子:
“id”: 2
对于有相同内容的审计记录
时间戳
值,他们id
值区分它们并形成一个序列。在审计日志中,时间戳
/id
对是唯一的。这些对是标识日志中事件位置的书签。登录
指示客户端如何连接到服务器的信息。该值是包含以下项的散列:
用户
,操作系统
,知识产权
,代理
.例子:
“登录”:{“用户”:“根”、“操作系统”:“”,“知识产权”:“::1 ","代理":" "}
shutdown_data
有关审计日志插件终止的信息。该值是包含以下项的散列:
server_id
此项仅用于审计记录类
而且事件
的值审计
而且关闭
,分别。例子:
"shutdown_data": {"server_id": 1}
startup_data
与审计日志插件初始化有关的信息。该值是包含以下项的散列:
server_id
,os_version
,mysql_version
,arg游戏
.此项仅用于审计记录类
而且事件
的值审计
而且启动
,分别。例子:
“startup_data”:{“server_id”:1、“os_version”:“i686-Linux”、“mysql_version”:“5.7.21-log”,“参数”:[“/ usr /地方/ mysql / bin / mysqld“,”——loose-audit-log-format = JSON ", "——日志错误=日志。犯错”、“mysqld——pid文件=。Pid ", "——port=3306"]}
table_access_data
关于访问表的信息。该值是包含以下项的散列:
db
,表格
,查询
,sql_command
的审计记录,该项只会出现类
的价值table_access
.例子:
“table_access_data”:{“分贝”:“测试”,“表”:“t1”、“查询”:“插入t1 (i)值(1),(2),(3)”,“sql_command”:“插入”}
时间戳
中表示UTC值的字符串
YYYY-MM-DD hh: mm: ss
表示产生审计事件的日期和时间的格式。例如,从客户端接收到的与执行SQL语句相对应的事件具有时间戳
值在语句结束后发生,而不是在收到语句时发生。例子:
"timestamp": "2019-10-03 13:50:01"
对于有相同内容的审计记录
时间戳
值,他们id
值区分它们并形成一个序列。在审计日志中,时间戳
/id
对是唯一的。这些对是标识日志中事件位置的书签。
这些项出现在与json格式审计记录的顶级项相关联的哈希值中:
arg游戏
当MySQL服务器启动时,在命令行或选项文件中给出的选项数组。第一个选项是服务器可执行文件的路径。
例子:
“参数”:[" / usr /地方/ mysql / bin / mysqld“,”——loose-audit-log-format = JSON ", "——日志错误=日志。犯错”、“mysqld——pid文件=。Pid ", "——port=3306"]
命令
表示生成审计事件的指令类型的字符串,例如服务器从客户端接收到的命令。
例子:
“命令”:“查询”
connection_type
到服务器的连接的安全状态。允许的值为
tcp / ip
(TCP/IP连接未加密建立),ssl
(通过加密建立TCP/IP连接),套接字
(Unix套接字文件连接),named_pipe
(Windows命名管道连接),以及shared_memory
(Windows共享内存连接)。例子:
:“connection_type tcp / tcp”
db
表示数据库名称的字符串。为
connection_data
,为默认数据库。为table_access_data
,它是表数据库。例子:
“分贝”:“测试”
宿主
表示客户端主机名的字符串。
例子:
“主机”:“localhost”
知识产权
表示客户端IP地址的字符串。
例子:
“知识产权”:“::1”
mysql_version
表示MySQL服务器版本的字符串。这就等于
(版本)
函数或版本
系统变量。例子:
:“mysql_version 5.7.21-log”
操作系统
表示认证过程中使用的外部用户名的字符串,由用于认证客户端的插件设置。使用本地(内置)MySQL身份验证,或者如果插件没有设置该值,此属性为空。该值与
external_user
系统变量。看到“操作系统”:“杰弗里。”
os_version
表示构建或运行服务器的操作系统的字符串。
例子:
:“os_version i686-Linux”
代理
表示代理用户的字符串(请参阅
“代理”:“开发人员”
查询
表示SQL语句文本的字符串。取值为空。长值可能会被截断。与审计日志文件本身一样,该字符串使用UTF-8写入(每个字符最多4个字节),因此该值可能是转换的结果。例如,原始语句可能是作为SJIS字符串从客户端接收的。
例子:
"DELETE FROM t1"
server_id
表示服务器ID的无符号整数。这就等于
server_id
系统变量。例子:
“server_id”:1
sql_command
指示SQL语句类型的字符串。
例子:
“sql_command”:“插入”
的值对应
声明/ sql /
命令计数器。例如,xxx
xxx
是drop_table
而且选择
为删除表
而且选择
分别陈述。下面的语句显示可能的名称:SELECT REPLACE(EVENT_NAME, 'statement/sql/', '') AS name FROM performance_schema事件s_statements_summary_global_by_event_name WHERE EVENT_NAME LIKE 'statement/sql/%' ORDER BY name;
状态
表示命令状态的无符号整数:0表示成功,非0表示发生错误。这就等于
mysql_errno ()
C语言API函数。审计日志中没有SQLSTATE值和错误提示。要查看错误代码、SQLSTATE值和消息之间的关联,请参见服务器错误信息参考.
警告不会被记录。
例子:
“状态”:1051
表格
表示表名的字符串。
例子:
“表”:“t1”
用户
表示用户名的字符串。不同的单词含义也不同
用户
发生:在
账户
项目,用户
表示服务器对客户端进行身份验证的用户的字符串。这是服务器用于权限检查的用户名。在
登录
项目,用户
表示客户端发送的用户名的字符串。
例子:
“用户”:“根”