

# 用于 RDS for Db2 的审计策略的存储过程
审计策略

本主题中介绍的内置存储过程可管理使用审计日志记录的 Amazon RDS for Db2 数据库的审计策略。有关更多信息，请参阅 [Db2 审核日志记录](Db2.Options.Audit.md)。要运行这些过程，主用户必须先连接到 `rdsadmin` 数据库。

请参阅以下内置存储过程，了解其语法、参数、用法说明和示例。

**Topics**
+ [

## rdsadmin.configure\$1db\$1audit
](#db2-sp-configure-db-audit)
+ [

## rdsadmin.disable\$1db\$1audit
](#db2-sp-disable-db-audit)

## rdsadmin.configure\$1db\$1audit


为 *db\$1name* 指定的 RDS for Db2 数据库配置审核策略。如果您正在配置的策略不存在，则调用此存储过程即可创建该策略。如果该策略确实存在，则调用此存储过程会使用您提供的参数值对其进行修改。

### 语法


```
db2 "call rdsadmin.configure_db_audit(
    'db_name', 
    'category', 
    'category_setting', 
    '?')"
```

### 参数


以下参数为必需参数。

*db\$1name*  
要为其配置审核策略的 RDS for Db2 数据库的数据库名称。数据类型为 `varchar`。

*category*  
要为其配置此审核策略的类别的名称。数据类型为 `varchar`。此参数的有效值如下所示：  
+ `ALL` - 选择 `ALL` 时，Amazon RDS 将不包含 `CONTEXT`、`EXECUTE` 或 `ERROR` 类别。
+ `AUDIT` 
+ `CHECKING` 
+ `CONTEXT` 
+ `ERROR` 
+ `EXECUTE` - 您可以为此类别配置数据，也可以不配置数据。配置数据意味着还要记录为任何主机变量和参数标记提供的输入数据值。默认为不配置数据。有关更多信息，请参阅 *category\$1setting* 参数描述和[示例](#db2-sp-configure-db-audit-examples)。
+ `OBJMAINT` 
+ `SECMAINT` 
+ `SYSADMIN` 
+ `VALIDATE` 
有关这些类别的更多信息，请参阅 [IBM Db2 文档](https://www.ibm.com/docs/en/db2/11.1?topic=statements-create-audit-policy)。

*category\$1setting*  
指定审核类别的设置。数据类型为 `varchar`。  
下表显示了每个类别的有效类别设置值。      
<a name="db2-option-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/db2-sp-managing-audit-policies.html)

### 使用说明


在调用 `rdsadmin.configure_db_audit` 之前，请确保包含您正在为其配置审核策略的数据库的 RDS for Db2 数据库实例与包含 `DB2_AUDIT` 选项的选项组相关联。有关更多信息，请参阅 [设置 Db2 审核日志记录](Db2.Options.Audit.md#db2-audit-setting-up)。

配置审核策略后，您可以按照[检查审核配置](Db2.Options.Audit.md#db2-audit-check-config-status)中的步骤检查数据库的审核配置状态。

为 `category` 参数指定 `ALL` 时不包括 `CONTEXT`、`EXECUTE` 或 `ERROR` 类别。要将这些类别添加到审核策略中，请对您要添加的每个类别分别调用 `rdsadmin.configure_db_audit`。有关更多信息，请参阅 [示例](#db2-sp-configure-db-audit-examples)。

### 示例


以下示例为名为 `TESTDB` 的数据库创建或修改审核策略。在示例 1 至示例 5 中，如果之前未配置 `ERROR` 类别，则该类别将设置为 `NORMAL`（默认）。要将该设置更改为 `AUDIT`，请按照[Example 6: Specifying the ERROR category](#example-6)操作。

**示例 1：指定 `ALL` 类别**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'ALL', 'BOTH', ?)"
```

在此示例中，调用在审核策略中配置了 `AUDIT`、`CHECKING`、`OBJMAINT`、`SECMAINT`、`SYSADMIN` 和 `VALIDATE` 类别。指定 `BOTH` 意味着将对其中每个类别的成功和失败事件进行审核。

**示例 2：使用数据指定 `EXECUTE` 类别**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'EXECUTE', 'SUCCESS,WITH', ?)"
```

在此示例中，调用在审核策略中配置了 `EXECUTE` 类别。指定 `SUCCESS,WITH` 意味着此类别的日志将仅包含成功事件，并将包括为主机变量和参数标记提供的输入数据值。

**示例 3：在没有数据的情况下指定 `EXECUTE` 类别**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'EXECUTE', 'FAILURE,WITHOUT', ?)"
```

在此示例中，调用在审核策略中配置了 `EXECUTE` 类别。指定 `FAILURE,WITHOUT` 意味着此类别的日志将仅包含失败事件，不包括为主机变量和参数标记提供的输入数据值。

**示例 4：指定不带状态事件的 `EXECUTE` 类别**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'EXECUTE', 'NONE', ?)"
```

在此示例中，调用在审核策略中配置了 `EXECUTE` 类别。指定 `NONE` 意味着将不对此类别中的任何事件进行审核。

**示例 5：指定 `OBJMAINT` 类别**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'OBJMAINT', 'NONE', ?)"
```

在此示例中，调用在审核策略中配置了 `OBJMAINT` 类别。指定 `NONE` 意味着将不对此类别中的任何事件进行审核。

**示例 6：指定 `ERROR` 类别**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'ERROR', 'AUDIT', ?)"
```

在此示例中，调用在审核策略中配置了 `ERROR` 类别。指定 `AUDIT` 意味着将在日志中捕获所有错误（包括审核日志记录本身中发生的错误）。默认错误类型为 `NORMAL`。使用 `NORMAL`，审核生成的错误将被忽略，并且仅捕获与正在执行的操作相关的错误的 `SQLCODE`。

## rdsadmin.disable\$1db\$1audit


停止对 *db\$1name* 指定的 RDS for Db2 数据库进行审核日志记录，并删除为其配置的审核策略。

**注意**  
此存储过程仅删除通过调用 [rdsadmin.configure\$1db\$1audit](#db2-sp-configure-db-audit) 配置的审核策略。

### 语法


```
db2 "call rdsadmin.disable_db_audit('db_name', ?)"
```

### 参数


以下参数为必需参数。

*db\$1name*  
要对其禁用审核日志记录的 RDS for Db2 数据库的数据库名称。数据类型为 `varchar`。

### 使用说明


调用 `rdsadmin.disable_db_audit` 不会对 RDS for Db2 数据库实例禁用审核日志记录。要在数据库实例级别禁用审核日志记录，请从数据库实例中删除选项组。有关更多信息，请参阅 [禁用 Db2 审核日志](Db2.Options.Audit.md#db2-audit-disabling)。

### 示例


以下示例针对名为 `TESTDB` 的数据库禁用审核日志记录。

```
db2 "call rdsadmin.disable_db_audit('TESTDB', ?)"
```