首批通过分布式安全可靠测评,为关键业务系统打造
审计函数概述
更新时间:2026-07-16 20:01:47
OceanBase 数据库审计机制通过一系列过滤器实现对特定事件进行审计。过滤器可以过滤的维度包括:账号、事件类型、事件属性等。每个过滤器可以选择对过滤出来的事件是否进行审计。
功能适用性
该内容仅适用于 OceanBase 数据库企业版,OceanBase 数据库社区版暂不支持审计功能。
审计函数
说明
可以设置一个默认过滤器,对所有没有显示设置过过滤器的用户生效。
OceanBase 数据库 MySQL 模式当前版本所支持的审计函数(表达式)如下表所示。
| 函数名称 | 描述 |
|---|---|
| AUDIT_LOG_FILTER_SET_FILTER | 用于创建过滤器。 |
| AUDIT_LOG_FILTER_SET_USER | 用于将过滤器设置到用户上。 |
| AUDIT_LOG_FILTER_REMOVE_USER | 用于将过滤器从用户上解除。 |
| AUDIT_LOG_FILTER_REMOVE_FILTER | 用于删除过滤器。 |
| AUDIT_LOG_ENCRYPTION_PASSWORD_SET | 用于触发归档当前正在写入的审计日志,并生成新的加密密钥。 |
| AUDIT_LOG_ENCRYPTION_PASSWORD_GET | 用于根据归档文件名中的 pwd_id 返回对应归档日志文件的加密密码(或密钥材料)。 |
使用限制及注意事项
表达式必须直接且唯一地放置在一个
SELECT语句的输出列(即 select item)中,且没有父表达式(parent expr)限制。表达式不能写在子查询中。
过滤器定义好之后,还需要设置到用户上才能够最终生效。
过滤器和用户是一对多的关系,即一个过滤器可以设置到多个用户上,一个用户上只能设置一个过滤器。
建立连接时会确定当前 Session 使用哪个审计过滤器(Audit Filter),在整个 Session 生命周期内不变。
- 调用
AUDIT_LOG_FILTER_SET_USER和AUDIT_LOG_FILTER_REMOVE_USER修改过滤器(Filter)和用户(User)的绑定关系不会影响当前已连接的 Session。 - 修改过滤器(Filter)的定义或者删除过滤器(Filter)会影响已连接 Session。
- 调用
AUDIT_LOG_FILTER_REMOVE_FILTER会级联删除这个过滤器(Filter)的所有审计用户(Audit User)绑定关系,对应用户下的操作不再纳入审计。