

# 为 Amazon RDS for Microsoft SQL Server 配置审计策略
<a name="DBActivityStreams.configuring-auditing-SQLServer"></a>

SQL Server 数据库实例具有服务器审计 `RDS_DAS_AUDIT`（由 Amazon RDS 管理）。您可以在服务器审计规范 `RDS_DAS_SERVER_AUDIT_SPEC` 中定义策略以记录服务器事件。您可以创建数据库审计规范，例如 `RDS_DAS_DB_<name>`，并定义记录数据库事件的策略。有关服务器和数据库级审计操作组的列表，请参阅《Microsoft SQL Server 文档》**中的 [SQL Server 审计操作组和操作](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions)。

原定设置服务器策略仅监控失败的登录，以及对数据库活动流的任何数据库或服务器审计规范进行的更改。

审计和审计规范的限制包括以下内容：
+ 当数据库活动流处于*锁定*状态时，您无法修改服务器或数据库审计规范。
+ 您无法修改服务器审计 `RDS_DAS_AUDIT` 规范。
+ 您无法修改 SQL Server 审计 `RDS_DAS_CHANGES` 或其相关的服务器审计规范 `RDS_DAS_CHANGES_AUDIT_SPEC`。
+ 创建数据库审计规范时，必须使用格式 `RDS_DAS_DB_<name>`，例如 `RDS_DAS_DB_databaseActions`。

**重要**  
对于较小的实例类，我们建议您不要审计所有数据，而只审计所需的数据。这有助于减少数据库活动流对这些实例类的性能影响。

以下示例代码修改了服务器审计规范 `RDS_DAS_SERVER_AUDIT_SPEC`，并对所有注销和成功的登录操作进行审计：

```
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC]
      WITH (STATE=OFF);
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC]
      ADD (LOGOUT_GROUP),
      ADD (SUCCESSFUL_LOGIN_GROUP)
      WITH (STATE = ON );
```

以下示例代码创建数据库审计规范 `RDS_DAS_DB_database_spec`，并将其附加到服务器审计 `RDS_DAS_AUDIT`：

```
USE testDB;
CREATE DATABASE AUDIT SPECIFICATION [RDS_DAS_DB_database_spec]
     FOR SERVER AUDIT [RDS_DAS_AUDIT]
     ADD ( INSERT, UPDATE, DELETE  
          ON testTable BY testUser )  
     WITH (STATE = ON);
```

配置审计规范后，确保将规范 `RDS_DAS_SERVER_AUDIT_SPEC` 和 `RDS_DAS_DB_<name>` 设置为 `ON` 状态。现在，它们可以将审计数据发送到您的数据库活动流。