数据库审计
本页目录
数据库审计#
本章节描述了 OushuDB 的审计功能。
概述#
数据库安全对数据库系统来说至关重要。数据库审计是数据库安全中必不可少的部分。
数据库的审计是指追踪和记录数据库系统或者数据库当中发生的事件。
数据库审计的方式目前一般有两种:将审计条目插入数据库表和记录日志文件。OushuDB 的审计功能采取记录日志文件的方式。
OushuDB 审计功能目前支持:
打开和关闭审计功能
配置审计策略
查看审计日志
维护审计日志
OushuDB 审计日志的格式:
名称 |
描述 |
类型 |
|---|---|---|
timestamp |
时间 |
timestamp with timezone |
username |
用户 |
string |
database name |
数据库 |
string |
process id |
进程号 |
int32 |
remote host |
ip地址 |
string |
remote port |
端口号 |
string |
sessionid |
session号 |
int32 |
cmdid |
command号 |
int32 |
vci |
虚拟集群实例 |
string |
audit type |
审计类型 |
enum {”AUDIT_LOGIN”, “AUDIT_LOGOUT”, ”AUDIT_DCL”, “AUDIT_DDL”, “AUDIT_DML”, “AUDIT_DQL”, “AUDIT_SET”, “AUDIT_UDF”} |
audit result |
审计结果 |
enum {”SUCCESS”, “FAILED”} |
statement |
语句 |
string |
affected rows |
影响行数 |
int64 |
object name |
审计对象 |
json string |
object info |
对象信息 |
json string |
detail info |
详细信息 |
string |
打开和关闭审计功能#
审计功能的总开关通过参数 audit_enabled 控制,目前不支持动态加载,设置之后需要重启数据库主节点。
oushudb config -c audit_enabled -v on
oushudb restart allmains
配置审计策略#
OushuDB 支持的审计策略#
策略名称 |
描述 |
值 |
默认值 |
|---|---|---|---|
audit_connection |
用户连接(登录、注销)审计 |
LOGIN, LOGOUT |
LOGIN, LOGOUT |
audit_type |
操作审计类型 |
DML, DDL, DQL, DCL, EXEC_FUNC, COPY_IN, COPY_OUT, SET |
DDL, DCL, SET |
audit_user |
用户审计 |
username 字符串 |
none (none 表示审计所有用户) |
使用 OushuDB 命令行配置审计策略#
OushuDB 支持审计策略的动态加载。
以配置 audit_type 为 DDL DML DQL 为例:
oushudb config -c audit_type -v "DDL, DML, DQL"
oushudb reload cluster -a
查看审计日志#
审计日志的目录为 ${OUSHUDB_LOG_PATH}/audit, OUSHUDB_LOG_PATH 环境变量可以通过如下命令获取:
source /usr/local/oushu/oushudb/oushudb_path.sh
env ${OUSHUDB_LOG_PATH}
审计日志的文件名称为 oushudb-audit-${worker_number}-${timestamp}.csv。
其中 ${worker_number} 是指当前工作的审计线程,${time_stamp} 是指审计线程创建审计日志文件时获取的系统时间戳。
审计日志的查看可以通过 Skylab 中 Lava 产品的数据库审计界面查看。
维护审计日志#
审计日志原生支持文件的翻转 (log rotaion) 和清理 (purge) 功能。
审计日志的默认翻转策略是:
1 GB 进行一次日志翻转
24 小时进行一次日志翻转
审计目录维护 10 GB 的日志容量