如题,OB 有没有数据库审计功能吗?有的话如何开启
有审计功能,但OceanBase 数据库社区版暂不支持安全审计。企业版可 通过配置项 audit_trail 开启审计功能,执行完后立即生效。
牛啊,说的很详细!
企业版有,社区版没有。
如果你使用的是OceanBase 企业版的 Oracle 模式租户,可以按照以下步骤开启审计功能:
-
解锁并配置审计用户 (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;
-
开启审计功能并设置存储位置
审计功能的开关由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语句,信息更详细。
-
设置审计规则
审计功能开启后,需要对具体操作(如连接、DDL、DML)进行审计配置。例如,审计所有SELECT语句。
– 审计用户 AUDITTEST 对表 t1 执行的 SELECT 操作
AUDIT SELECT ON AUDITTEST.t1 BY ACCESS;
此外,你还可以通过一系列 audit_log_* 开头的系统参数来配置审计日志的行为,例如设置日志写入策略、日志文件大小、存储路径(支持本地、OSS、NFS)和保留时长等。
学习下222
OceanBase 数据库确实具备数据库审计功能,但需要注意的是,此功能仅在企业版中可用,社区版暂不支持。
开启审计功能的步骤
-
开启 SQL 审计:
- 通过设置
enable_sql_audit参数来全局控制 SQL 审计功能的开关。 - 参数类型:布尔类型
- 默认值:True(开启)
- 取值范围:
- True:开启
- False:不开启
- 是否需要重启 OBServer 节点生效:否
- 通过设置
-
控制租户级别的 SQL 审计:
- 通过设置
ob_enable_sql_audit参数来控制当前租户是否开启 SQL Audit 功能。 - 参数类型:bool
- 默认值:true(开启)
- 取值范围:
- true:表示开启
- false:表示关闭
- 生效范围:GLOBAL
- 是否可修改:是,支持通过
SET语句修改。
- 通过设置
-
设置审计规则:
- 开启安全审计后,需要设置具体的安全审计规则来对用户的操作进行审计。
- 过滤器可以过滤的维度包括:账号、事件类型、事件属性等。
- 每个过滤器可以选择对过滤出来的事件是否进行审计。
注意事项
-
enable_sql_audit为 false 时,全部的租户均不会开启 sql audit 功能。 - 审计功能仅适用于 OceanBase 数据库企业版,社区版暂不支持。
具体信息可参考以下文档: