从MySQL 8.0.14开始,audit_api_message_emit
组件使应用程序能够将它们自己的消息事件添加到审计日志audit_api_message_emit_udf ()
函数。
的audit_api_message_emit
组件与所有审计类型的插件协作。为了具体,示例使用audit_log
插件中描述第6.4.5节,“MySQL企业审计”.
要使服务器可用,组件库文件必须位于MySQL插件目录中(该目录由plugin_dir
系统变量)。如果有必要,可以通过设置的值来配置插件目录位置plugin_dir
在服务器启动。
安装audit_api_message_emit
组件,使用以下语句:
安装组件”文件:/ / component_audit_api_message_emit”;
组件安装是一次性操作,不需要在每次服务器启动时进行。安装组件
加载该组件,并将其注册到10bet靠谱mysql.component
系统表,以便在后续服务器启动期间加载它。
卸载了audit_api_message_emit
组件,使用以下语句:
卸载组件“文件:/ / component_audit_api_message_emit”;
卸载组件
卸载该组件,并从10bet靠谱mysql.component
系统表,以导致在后续服务器启动期间不加载它。
因为安装和卸载audit_api_message_emit
组件将安装和卸载audit_api_message_emit_udf ()
组件实现的函数,不需要使用创建函数
或删除函数
这样做。
本节介绍audit_api_message_emit_udf ()
函数实现的audit_api_message_emit
组件。
在使用审计消息功能之前,请按照下面的说明安装审计消息组件安装或卸载审计消息组件.
audit_api_message_emit_udf (
组件
,生产商
,消息
(,关键
,价值
]…)将消息事件添加到审计日志中。消息事件包括调用方选择的组件、生产者和消息字符串,以及可选的一组键-值对。
此函数发布的事件被发送到所有启用的审计类型的插件,每个插件根据自己的规则处理该事件。如果没有启用审计类型的插件,发布事件没有效果。
参数:
组件
:指定组件名称的字符串。生产商
:指定生产者名称的字符串。消息
:指定事件消息的字符串。关键
,价值
:事件可能包括0个或多个键值对,它们指定任意应用程序提供的数据映射。每一个关键
参数是一个字符串,它为紧接其后的参数指定名称价值
论点。每一个价值
参数为其紧接其后的对象指定一个值关键
论点。每一个价值
可以是字符串或数值,或者零
.
返回值:
的字符串
好吧
表示成功。如果函数失败,则会出现错误。例子:
mysql> SELECT audit_api_message_emit_udf('component_text', 'producer_text', 'message_text', 'key1', 'value1', 'key2', 123, 'key3', NULL) AS 'Message';+---------+ | 消息 | +---------+ | 好吧 | +---------+
附加信息:
接收由发布的事件的每个审计插件
audit_api_message_emit_udf ()
以特定于插件的格式记录事件。例如,audit_log
插件(见第6.4.5节,“MySQL企业审计”的日志信息值,具体取决于配置的日志格式audit_log_format
系统变量:JSON格式(
audit_log_format = JSON
):{…"class": "message", "event": "user",…"message_data": {"component": "component_text", "producer": "producer_text", "message": "message_text", "map": {"key1": "value1", "key2": 123, "key3": null}}}}
新型XML格式(
audit_log_format = NEW
):< AUDIT_RECORD >…<名称>消息< /名称>…
user component_text producer_text 旧式XML格式(
audit_log_format =老
):< AUDIT_RECORD…NAME = "消息"……COMMAND_CLASS="user" COMPONENT="component_text" PRODUCER="producer_text" MESSAGE="message_text"/> . COMMAND_CLASS="user" COMPONENT="component_text" MESSAGE=" producer_text
请注意由于这种格式施加的表示约束,以旧式XML格式记录的消息事件不包括键值映射。
发布的消息
audit_api_message_emit_udf ()
有一个事件类MYSQL_AUDIT_MESSAGE_CLASS
的子类MYSQL_AUDIT_MESSAGE_USER
.内部生成的审计消息具有相同的类和类的子类MYSQL_AUDIT_MESSAGE_INTERNAL
;这个子类目前未使用。)引用:在…中引用这些事件audit_log
过滤规则,使用类
元素的名字
的价值消息
.例如:{"filter": {"class": {"name": "message"}}}}
是否有必要区分用户生成和内部生成的消息事件,测试
子类
值对用户
或内部
.不支持基于键值映射的内容进行过滤。
有关编写过滤规则的信息,请参见第6.4.5.7节“审计日志过滤”.