OB 有数据库审计功能吗?

如题,OB 有没有数据库审计功能吗?有的话如何开启

4 个赞

有审计功能,但OceanBase 数据库社区版暂不支持安全审计。企业版可 通过配置项 audit_trail 开启审计功能,执行完后立即生效。

3 个赞

牛啊,说的很详细!

1 个赞

开启安全审计-V4.6.0-OceanBase 数据库文档-分布式数据库使用文档

1 个赞

企业版有,社区版没有。

如果你使用的是OceanBase 企业版的 Oracle 模式租户,可以按照以下步骤开启审计功能:

  1. 解锁并配置审计用户 (ORAAUDITOR)
    OceanBase 默认自动创建了审计用户 ORAAUDITOR ,但默认是锁定的。需要由 SYS 用户将其解锁并设置密码。

– 1. 解锁 ORAAUDITOR 用户
ALTER USER ORAAUDITOR ACCOUNT UNLOCK;

– 2. 设置 ORAAUDITOR 用户的密码
ALTER USER ORAAUDITOR IDENTIFIED BY <your_strong_password>;

– 3. 授予必要的权限(例如登录权限)
GRANT CREATE SESSION, SELECT ANY DICTIONARY TO ORAAUDITOR;

  1. 开启审计功能并设置存储位置
    审计功能的开关由 audit_trail 参数控制。

– 开启审计,并将审计记录写入内部表,同时记录执行的SQL语句(推荐)
ALTER SYSTEM SET audit_trail = ‘DB,EXTENDED’;

audit_trail 参数可选值及说明如下:

  • NONE : 关闭审计(默认值)。
  • OS : 将审计记录写入本地的磁盘文件(默认路径:/home/admin/oceanbase/audit/ )。
  • DB : 将审计记录写入内部表(__all_tenant_security_audit_record )。
  • DB,EXTENDED : 写入内部表,并记录执行的SQL语句,信息更详细。
  1. 设置审计规则
    审计功能开启后,需要对具体操作(如连接、DDL、DML)进行审计配置。例如,审计所有 SELECT 语句。

– 审计用户 AUDITTEST 对表 t1 执行的 SELECT 操作
AUDIT SELECT ON AUDITTEST.t1 BY ACCESS;

此外,你还可以通过一系列 audit_log_* 开头的系统参数来配置审计日志的行为,例如设置日志写入策略、日志文件大小、存储路径(支持本地、OSS、NFS)和保留时长等。

1 个赞

学习下222

1 个赞

@论坛小助手

OceanBase 数据库确实具备数据库审计功能,但需要注意的是,此功能仅在企业版中可用,社区版暂不支持。

开启审计功能的步骤

  1. 开启 SQL 审计

    • 通过设置 enable_sql_audit 参数来全局控制 SQL 审计功能的开关。
    • 参数类型:布尔类型
    • 默认值:True(开启)
    • 取值范围:
      • True:开启
      • False:不开启
    • 是否需要重启 OBServer 节点生效:否
  2. 控制租户级别的 SQL 审计

    • 通过设置 ob_enable_sql_audit 参数来控制当前租户是否开启 SQL Audit 功能。
    • 参数类型:bool
    • 默认值:true(开启)
    • 取值范围:
      • true:表示开启
      • false:表示关闭
    • 生效范围:GLOBAL
    • 是否可修改:是,支持通过 SET 语句修改。
  3. 设置审计规则

    • 开启安全审计后,需要设置具体的安全审计规则来对用户的操作进行审计。
    • 过滤器可以过滤的维度包括:账号、事件类型、事件属性等。
    • 每个过滤器可以选择对过滤出来的事件是否进行审计。

注意事项

  • enable_sql_audit 为 false 时,全部的租户均不会开启 sql audit 功能。
  • 审计功能仅适用于 OceanBase 数据库企业版,社区版暂不支持。

具体信息可参考以下文档:

  1. enable_sql_audit
  2. 开启安全审计
  3. 设置审计规则
  4. 审计函数概述