---
title: "设置和查看审计规则 - OceanBase 数据库 V4.4.2 | OceanBase 文档中心"
description: 设置和查看审计规则 开启安全审计后，需要设置具体的安全审计规则来对用户的操作进行审计。 设置审计规则 使用 ORAAUDITOR 用户登录到 Oracle 租户。通过内置的审计管理用户 ORAAUDITOR 可以配置审计规则，包括： 语句审计：对特定的操作进行审计，不指定具体对象，可以指定对具体用户或对所有用户生效。…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.4.2 LTS

# 设置和查看审计规则

更新时间：2026-07-16 19:52:04

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.2/zh-CN/600.manage/500.security-and-permissions/600.security-audit/300.security-audit-of-oracle-mode/300.set-up-and-view-audit-rules-of-oracle-mode.md)  

开启安全审计后，需要设置具体的安全审计规则来对用户的操作进行审计。

## 设置审计规则

使用 `ORAAUDITOR` 用户登录到 Oracle 租户。通过内置的审计管理用户 `ORAAUDITOR` 可以配置审计规则，包括：

- 语句审计：对特定的操作进行审计，不指定具体对象，可以指定对具体用户或对所有用户生效。
 - 对象审计：对特定的对象上执行的特定操作进行审计，可以指定对具体用户或对所有用户生效。

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

有关设置审计规则的详细信息，请参见 [AUDIT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005287880)。

例如，对用户 `user1` 的表 `tbl1` 的所有 INSERT、UPDATE 和 DELETE 操作进行审计：

```shell
obclient> AUDIT INSERT,UPDATE,DELETE ON user1.tbl1;

```

## 查看审计规则

设置审计规则后，您可以通过一系列 Oracle 兼容的数据字典视图查看审计规则的信息。

| 字典视图 | 功能说明 |
| --- | --- |
| [ALL_DEF_AUDIT_OPTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005284201) | 记录任何新创建对象的默认审计规则。每列的取值如下：   - `-/-`：默认不审计 - `A/-`: 只在语句执行成功时审计 - `-/A`: 只在语句执行失败时审计 - `A/A`: 语句执行无论成功还是失败时都审计 |
| [DBA_STMT_AUDIT_OPTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005284047) | 记录语句级别审计的详细配置。 |
| [DBA_OBJ_AUDIT_OPTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005284317) | 记录对象级别审计的详细配置。 |

查看 `ALL_DEF_AUDIT_OPTS` 中的审计规则。示例如下：

```shell
obclient> SELECT * FROM SYS.ALL_DEF_AUDIT_OPTS;

```

## 设置审计日志加密（可选）

#### 说明

该功能从 V4.4.2 BP2 版本开始引入，仅适用于将审计记录写入磁盘文件的场景（`audit_trail` 为 `LOG`）。

Oracle 租户支持对审计日志进行加密存储。在启用加密后，归档产生的日志文件可按密钥标识落盘，便于与压缩、轮转、清理等策略组合使用。可参考下文小节步骤按需顺次操作。

### 启用日志加密功能

通过配置项 `audit_log_encryption` 控制是否启用审计日志加密，取值包括：

- `NONE`：不启用加密，为默认取值。
 - `AES`：启用加密；算法为 AES-256-CBC 的流式加密（归档写入过程中对流加密）。

例如，为当前租户启用审计日志加密：

```shell
obclient> ALTER SYSTEM SET audit_log_encryption='AES';

```

配置项完整说明请参见文末相关文档。

### 日志归档与密码生成

通过调用以下函数实现日志归档与密码生成。须将函数直接作为 `SELECT` 的输出列调用（不能写在子查询中），不是 `AUDIT`/`NOAUDIT` 语法：

- `AUDIT_LOG_ENCRYPTION_PASSWORD_SET()`：无参数。用于触发归档当前正在写入的审计日志，并生成新的加密密钥；后续新生成的归档文件将使用新密钥加密。函数完整说明请参见文末相关文档。

#### 注意

使用该函数需拥有 `SUPER` 权限。

示例如下：

```shell
obclient> SELECT AUDIT_LOG_ENCRYPTION_PASSWORD_SET() FROM DUAL;

```

#### 注意

仅在 `audit_log_encryption` 配置项开启且此步骤执行成功后，归档生成的审计日志文件才会被加密存储。

### 日志密码获取

通过调用以下函数获取日志文件的加密密码：

- `AUDIT_LOG_ENCRYPTION_PASSWORD_GET(pwd_id)`：参数 `pwd_id` 为 Int 类型，表示日志文件的时间戳后缀。用于根据日志文件的时间戳后缀返回对应归档日志文件的加密密码，如果不传入参数，默认获取最新的 `pwd_id` 对应的密码。函数完整说明请参见文末相关文档。

#### 说明

使用该函数需拥有 `SUPER` 权限。

获取当前最新归档日志的加密密码：

```shell
obclient> SELECT AUDIT_LOG_ENCRYPTION_PASSWORD_GET() FROM DUAL;

```

获取指定日志的加密密码：

```shell
obclient> SELECT AUDIT_LOG_ENCRYPTION_PASSWORD_GET('1682089200') FROM DUAL;

```

### 日志解密

审计日志加密使用 openssl 提供的接口，用 openssl 对日志文件进行加解密需要指定 key 和 iv，或者指定 password，命令示例如下：

```shell
# -d 表示解密
# -aes-256-cbc 表示使用 AES-256-CBC 算法
# -pass pass:password 表示使用 password 作为密码
# -md sha256 表示使用 SHA-256 算法
# -in encrypted_log_file 表示输入加密的日志文件
# -out decrypted_file 表示输出解密的日志文件
obclient > openssl enc -d -aes-256-cbc  -pass pass:password -md sha256 -in encrypted_log_file -out decrypted_file

```

### 附录：日志文件名格式说明

归档后的审计日志文件名在时间戳后缀基础上，按是否启用压缩、加密追加约定片段（`pwd_id` 为密钥标识，与视图及函数参数对应）：

| 场景 | 文件名格式 |
| --- | --- |
| 无压缩、无加密 | `audit.log.timestamp` |
| 仅压缩 | `audit.log.timestamp.zst` |
| 仅加密 | `audit.log.timestamp.enc.pwd_id` |
| 压缩且加密 | `audit.log.timestamp.zst.enc.pwd_id` |

其中 `timestamp` 为归档文件名中的时间戳后缀；若同时开启压缩，压缩扩展名以配置及实现为准（当前压缩算法为 `ZSTD` 时对应 `.zst`）。

## 相关文档

有关安全审计的更多相关操作，参见：

- [开启安全审计](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283319)
 - [查看审计记录](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283318)
 - 设置日志加密：[audit_log_encryption](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005906387)
 - 日志归档与解密设置函数：[AUDIT_LOG_ENCRYPTION_PASSWORD_SET](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006370924)
 - 日志归档与解密查询函数：[AUDIT_LOG_ENCRYPTION_PASSWORD_GET](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006370925)
 - [审计函数概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006370923)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
