暂无图片
暂无图片
12
暂无图片
暂无图片
暂无图片

OceanBase安全审计V4.0

OceanBase 2022-11-15
515

数据加密和访问控制可以大幅降低安全风险,但对于具备权限的用户,仍然需要记录其操作,以防止用户登录信息泄露,或者访问权限被滥用。审计功能可以加强企业对数据安全、合规等方面的要求,是跟踪用户行为最主要的工具。

审计开启

通过配置项 audit_trail 开启审计功能,执行完后立即生效。

  • NONE:关闭审计。

  • OS:审计记录写本地文件。

  • DB:审计记录写内部表。

  • DB,EXTENDED:审计记录写内部表且记录包含执行的 SQL 语句。

管理员用户拥有最高权限,能执行很多操作,所以针对管理员有单独配置审计。租户配置项 audit_sys_operations 决定是否对管理员的操作进行审计记录。

设置审计规则

通过内置的审计管理用户 ORAAUDITOR 可以配置审计规则,包括:

  • 语句审计:对特定的操作进行审计,不指定具体对象,可以指定对具体用户或对所有用户生效。

  • 对象审计:对特定的对象上执行的特定操作进行审计,可以指定对具体用户或对所有用户生效。

审计规则是通过 DDL 语句 audit/noaudit 语句来配置,审计规则也是一种 schema 对象。

审计流程

审计检查的时机位于一条用户 SQL 执行完毕后准备回包之前。审计检查的流程如下:

  1. 检查对当前用户是否进行审计,根据租户、用户名、配置项综合判断。

  2. 解析 SQL 语句中可被审计的操作,一条 SQL 语句可以包含多个不同的操作,例如 insert into t1 select * from t2, t3 中包含了 (insert, t1), (select, t2), (select t3) 3 个操作。

  3. 对每个操作单独判断是否命中任意一条审计规则。

  4. 每个命中规则的操作单独产生一条审计记录。根据配置项,审计记录可以记录在内部表或文件中。

审计记录

审计文件会放在 audit 目录中,observer_${pid}_${timestamp}.aud 文件名形式存储。写文件使用了 ObLogger 提供的接口,其功能和其他系统日志相同,当文件大小达到 256M 时,会将其进行切分。

审计记录写入内部表有如下特性:

  • AUDIT_TRAIL 取值 DB 时不记录用户 SQL,取值 DB,EXTENDED 会记录用户 SQL。

  • 审计记录的插入独立于用户事务,即使用户事务回滚,审计记录依然保留。

  • 审计写表失败时,会尝试审计写文件方式保存审计记录。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论