数据库的审计功能是指对数据库访问行为进行监管,记录数据库里面发生了什么操作,是数据库系统安全功能的组成部分。
AntDB-M的审计功能关注客户端的连接信息,比如:用户名和主机地址、客户端发送的SQL语句、SQL执行访问的对象、修改的服务端变量。这些信息都会写入到审计日志文件中,通过分析审计日志,可以在发生数据库安全事件后为事件的追责定责提供依据,也可以对数据库操作的风险行为进行及时告警。
AntDB-M的审计功能是通过插件来实现的。插件是一个单独的文件,文件格式是动态库,插件在使用的时候,使用SQL命令进行安装;不使用的时候,使用SQL命令进行卸载。
AntDB-M的审计功能支持配置,通过不同的配置项,可以灵活控制审计功能的开启、审计的事件、审计的用户、审计日志文件的路径和大小等。
表1:AntDB-M审计功能配置项
AntDB-M的审计功能中的事件(events),是指数据库内部的操作行为,包括:连接、查询、表、数据定义行为、数据操作行为、数据控制行为,这些操作都支持记录到审计日志中,也可以通过配置项audit_logging_events配置部分要关注的事件。
表2:AntDB-M审计功能事件
日志文件不能无限地增长,不然会把硬盘占满,导致服务无法正常运行,或者日志文件过大导致检索要花费很多时间来寻找匹配的日志内容。AntDB-M的审计日志支持设置单个日志文件的大小,支持设置开启日志文件转档。开启日志文件转档后,日志文件大小达到转档阈值就会产生一个新的日志文件,审计日志信息会写到新的日志文件中,待转档日志文件数达到文件数上限,就会覆盖最老的日志文件。
AntDB-M审计功能的配置项可以配置要审计的用户或者要排除的用户。并不是所有的用户都需要进行审计,这样灵活的配置,使得审计更加高效,只记录关注的用户和事件,减少审计日志信息,降低对数据库性能的影响。
下面通过一个场景演示审计功能:
创建1个远程用户allow_user,审计配置项配置为要审计的用户是allow_user,要审计的事件是数据操作行为,也就是DML语句要写入到审计日志中。远程用户allow_user登录数据库执行如下操作:
图1:测试SQL语句
命令执行结束后,查看审计日志的内容:
图2:审计日志内容
审计日志记录的格式:
图3:审计日志格式
按照日志的格式分析审计日志的最后一行:
时间戳:20230721 10:14:56
数据库主机名:adb05
客户端用户名:allow_user
客户端地址:127.0.0.1
连接ID:12105
查询ID:12236
操作类型:QUERY
数据库名:customer
数据库对象名:对于查询事件,记录的是SQL语句
操作返回值:1054,SQL语句执行的返回值。因为customer表中没有字段c2,所以返回错误码1054
关于AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。