# 安全审计

##### <span style="color: rgb(224, 62, 45);">**测评项：a）应启用安全审计功能，审计覆盖到每个用户，对重要的用户行为和重要安全事件进行审计；**</span>

1）应核查是否开启了安全审计功能；

> DM 具有一个灵活的审计子系统，可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。审计开关由过程 VOID SP\_SET\_ENABLE\_AUDIT（param int）;控制，过程执行完后会立即生效，param 有三种取值：
> 
> 0：关闭审计，缺省值为 0。
> 
> 1：打开普通审计
> 
> 2：打开普通审计和实时审计

使用**<span style="color: rgb(35, 111, 161);">数据库数据库审计员</span>**查询审计开关当前的值：

[![image.png](https://document.nat.ac.cn/uploads/images/gallery/2025-07/scaled-1680-/vdRimage.png)](https://document.nat.ac.cn/uploads/images/gallery/2025-07/vdRimage.png)

2）应核查安全审计范围是否覆盖到每个用户；

默认覆盖到数据库上的每一个用户账户。

3）应核查是否对重要的用户行为和重要安全事件进行审计。

> 审计级别说明如下：  
> **<span style="color: rgb(35, 111, 161);">系统级</span>**：系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用，此级别的审计无法也无需由用户进行设置，只要审计开关打开就会自动生成对应审计记录  
> <span style="color: rgb(35, 111, 161);">**语句级**</span>：导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句  
> <span style="color: rgb(35, 111, 161);">**对象级**</span>：审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句

开启ENABLE\_AUDIT以及针对语句级查询后查看日志记录；

```
select * from V$AUDITRECORDS；
```

[![image.png](https://document.nat.ac.cn/uploads/images/gallery/2025-07/scaled-1680-/FTyimage.png)](https://document.nat.ac.cn/uploads/images/gallery/2025-07/FTyimage.png)

另外在配置文件dm.ini中添加参数 AUD\_PATH 指定审计文件保存位置后，可在对应log目录下找到日志记录文件。

##### <span style="color: rgb(224, 62, 45);">**测评项：b）审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相 关的信息**</span>

审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、操作时间、当前审计条件等。

##### <span style="color: rgb(224, 62, 45);">**测评项：c）应对审计记录进行保护，定期备份，避免受到未预期的删除、修改或覆盖等；**</span>

<p class="callout info">单个审计文件的大小可以通过 DM 的 INI 参数 AUDIT\_MAX\_FILE\_SIZE 指定。当单个审计文件超过指定大小时，系统会自动切换审计文件，自动创建新的审计文件，审计记录将写入新的审计文件中。AUDIT\_MAX\_FILE\_SIZE 为动态系统级参数，有效值范围为 1~4096M，缺省值为 100M。</p>

<p class="callout info">极限情况下，审计记录可能会因为磁盘空间不足而无法写入审计文件，最终导致系统无法正常运行。对这种情况的处理有两种策略，通过设置 DM 的 INI 参数 **<span style="color: rgb(35, 111, 161);">AUDIT\_FILE\_FULL\_MODE </span>**进行配置。当将 AUDIT\_FILE\_FULL\_MODE 置为 1 时，将删除最老的审计文件，直至有足够的空间创建新审计文件。当将 AUDIT\_FILE\_FULL\_MODE 置为 2 时，将不再写审计记录；缺省值为 1。</p>

> 不同AUDIT\_FILE\_FULL\_MODE的含义如下：
> 
> <table id="bkmrk-%E5%8F%82%E6%95%B0%E5%80%BC-%E5%90%AB%E4%B9%89-0-%E5%BD%93%E5%AE%A1%E8%AE%A1%E6%96%87%E4%BB%B6%E5%86%99%E6%BB%A1%E6%97%B6%EF%BC%8C%E5%81%9C%E6%AD%A2"><thead><tr><th>参数值</th><th>含义</th></tr></thead><tbody><tr><td>`0`</td><td>当审计文件写满时，**停止写入新的审计记录**，并可能触发报错（严格模式，确保记录不丢失，但可能影响业务）。</td></tr><tr><td>`1`</td><td>写满后 **切换到新的审计文件**（需提前配置文件路径和滚动策略，如按大小或时间分割）。</td></tr><tr><td>`2`</td><td>写满后 **覆盖最早的审计记录**（但可能仅覆盖部分旧记录，策略较简单）。</td></tr><tr><td>`3`</td><td>写满后 **循环覆盖最早的审计记录**（持续滚动写入，始终保留最新的审计记录，旧记录逐步被覆盖）。</td></tr></tbody></table>
> 
> 两种策略都会导致审计记录的缺失，因此，管理员应该及时对审计文件进行备份。

```
SELECT * FROM V$PARAMETER WHERE NAME = 'AUDIT_FILE_FULL_MODE';
```

[![image.png](https://document.nat.ac.cn/uploads/images/gallery/2025-07/scaled-1680-/YSgimage.png)](https://document.nat.ac.cn/uploads/images/gallery/2025-07/YSgimage.png)

##### <span style="color: rgb(224, 62, 45);">**测评项：d）应对审计进程进行保护，防止未经授权的中断。**</span>

默认普通用户以及非审计员管理账户无权限关闭日志记录进程。

<p class="callout info">更多和审计相关的信息请查阅：**<span style="color: rgb(35, 111, 161);">https://eco.dameng.com/document/dm/zh-cn/pm/audit.html</span>**  
</p>