从MySQL 8.0.14开始audit_api_message_emit
控件使应用程序能够将自己的消息事件添加到审计日志audit_api_message_emit_udf ()
用户定义的函数。
的audit_api_message_emit
组件与审计类型的所有插件合作。为了具体性,例子使用Audit_log.
插件描述6.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 ()
控件实现的用户定义函数(UDF)audit_api_message_emit
成分。
在使用审计消息功能之前,根据提供的说明安装审计消息组件安装或卸载审计消息组件。
audit_api_message_emit_udf (
组件
,生产者
,消息
[,关键
,价值
] ...)将邮件事件添加到审核日志。消息事件包括调用者选择的组件,生产者和消息字符串,以及可选的一组键值对。
由此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.5节,“MySQL企业审计”)根据配置的日志格式记录如下消息值audit_log_format.
系统变量:JSON格式(
audit_log_format = JSON.
):{...“类”:“消息”,“事件”:“user”,...“message_data”:{component_text“,”prodor_text“:”producer_text“,”message“:”message_text“,”地图“:{”key1“:”value1“,”key2“:123,”key3“:null}}}}}}
新式XML格式(
audit_log_format = NEW
):< AUDIT_RECORD >…<名称>消息< /名称>…用户< COMMAND_CLASS > < / COMMAND_CLASS > <组件> component_text组件> < / > <生产商producer_text < /制作人> <消息> message_text <消息> / <地图> <元素> <键> key1关键< / > < >价值value1 < /值>元素< / > < >元素<键> key2 < /关键> <值> 123 < /值>元素< / > < >元素<键> key3 < /关键> <价值/ > < /元素> < /地图> < / AUDIT_RECORD >
旧式XML格式(
audit_log_format =老
):< AUDIT_RECORD…NAME = "消息"……COMMAND_CLASS="user" COMPONENT="component_text" PRODUCER="producer_text" MESSAGE="message_text"/>
请注意由于这种格式所施加的表示约束,以老式XML格式记录的消息事件不包括键-值映射。
发布的消息
audit_api_message_emit_udf ()
有事件类MYSQL_AUDIT_MESSAGE_CLASS
和一个子类MYSQL_AUDIT_MESSAGE_USER
。(内生成的审计消息具有相同的类和子类mysql_audit_message_internal.
;该子类目前未使用。)在。中引用此类事件Audit_log.
过滤规则,使用a类
元素与A.的名字
的价值消息
。例如:{"filter": {"class": {"name": "message"}}}
是否有必要区分用户生成的和内部生成的消息事件
子类
值对用户
或者内部的
。不支持基于键-值映射的内容进行过滤。
有关写入过滤规则的信息,请参见第6.5.7节,“审计日志过滤”。