审计功能管理
📄字数 2.0K
👁️阅读量 加载中...
系统主要通过审计开关(系统参数配置)、审计权限管理、审计项定义和审计记载实现审计功能的管理和维护。
审计管理方法 | 作用及影响 |
---|---|
审计开关 | 控制系统审计功能的开启与关闭。 |
审计设置权 | 审计权限管理。 |
审计项 | 用户自定义的审计策略,支持系统级、语句级和对象级的审计项定义。 |
一、审计开关
支持通过系统参数 enable_audit 控制审计功能的开启与关闭。
- 开启/关闭审计
sql
--开启审计
SQL> SET enable_audit ON;
--关闭审计
SQL> SET enable_audit OFF;
1
2
3
4
5
2
3
4
5
- 查看审计开关状态
sql
--当前审计开关状态(T:开启审计;F:关闭审计(默认))
SQL> SHOW enable_audit;
ENABLE_AUDIT |
------------------------------------------------------------------------------
F |
1
2
3
4
5
6
2
3
4
5
6
二、授予/回收审计设置权
支持通过审计管理员(SYSAUDITOR)对普通用户授予审计设置权实现普通用户对审计功能的使用(具备定义审计项的权限)。
sql
-- 授予普通用户审计设置权
SQL> grant auditor to u1;
-- 回收普通用户审计设置权
SQL> revoke auditor from u1;
1
2
3
4
5
2
3
4
5
支持访问系统表 SYSDBA.SYS_ACLS 确认用户的权限。
sh
# 系统库(DB_ID = 1)下的某个普通用户(GRANTEE_ID = 101)
# 被审计管理员(GRANTOR_ID)授予审计设置权(AUTHORITY & 0x10000000 = 268435456)。
SQL> select db_id,grantor_id,grantee_id,authority from sys_acls where grantee_id = 101;
+-------+------------+------------+-----------+
| DB_ID | GRANTOR_ID | GRANTEE_ID | AUTHORITY |
+-------+------------+------------+-----------+
| 1 | 3 | 101 | 268435456 |
+-------+------------+------------+-----------+
(1 row)
Use time:0 ms.
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
三、审计项
3.1 语法设计
- 参数说明:
AuditOper
:审计动作,AUDIT 表示定义审计项,NOAUDIT 表示取消审计项。AuditItems
:审计项,可以是语句级审计项也可以是对象级审计项。optAuditUser
:审计项针对用户的审计范围,可以是针对个别用户或当前库下的全部用户,隐式不指定用户则表示当前库下的所有用户。optAuditCond
:审计条件,支持显示指定只审计执行成功(WHENEVER SUCCESSFUL)或失败(WHENEVER NO SUCCESSFUL)的操作,隐式不指定则表示执行成功和失败的操作都会被审计。ObjName
: 对象级审计中受审计的对象名标识符。UserName
:用户名标识符。
3.2 应用举例
sh
# 审计所有用户对任何表的 UPDATE 操作。
SQL> audit update table whenever successful;
# 审计用户 u1 对 u1.t1 表的 DELETE 操作。
SQL> audit delete on u2.t1 by u2 whenever successful;
# 取消审计所有用户对任何表的 UPDATE 操作。
SQL> noaudit update table whenever successful;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
四、审计记载
审计产生的审计记录会写入审计结果表 SYSAUDITOR.SYS_AUDIT_RESULTS(表属主为审计管理员),该表是一个以字段 OPTIME 作为分区键的自动扩展分区表,分区间隔为 7 天,基于分区表的特点,用户可以通过对分区的管理实现对审计数据记录的管理和维护。审计结果表在用户定义审计项时由系统自动创建,审计结果表采用分库不分表设计以尽可能满足高并发应用场景。