

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 稽核 Amazon RDS for SQL Server 資料庫執行個體
<a name="auditing-rds-sql-instances"></a>

本節提供 Amazon RDS 上 SQL Server 稽核選項的相關資訊，包括建立稽核、檢視稽核日誌和監控結果。

## 先決條件
<a name="rds-prerequisites"></a>
+ 儲存稽核檔案的 Amazon Simple Storage Service (Amazon S3) 儲存貯體
+ 用於存取 S3 儲存貯體的 AWS Identity and Access Management (IAM) 角色 [ S3 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.IAM)
+ 具有 `ALTER ANY SERVER AUDIT`或 `CONTROL SERVER`許可的資料庫登入

## 支援的版本
<a name="rds-versions"></a>
+ 對於 Amazon RDS for SQL Server 2014，所有版本都支援伺服器層級稽核。Enterprise Edition 也支援資料庫層級稽核。
+ 從 SQL Server 2016 (13.x) SP1 開始，所有版本均支援伺服器層級和資料庫層級稽核。
+ Amazon RDS 目前在所有 中支援 SQL Server 稽核，中東 （巴林） AWS 區域 除外。如需最新資訊，請參閱 Amazon RDS 文件中的 [SQL Server 稽核支援](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.Support)。

## 使用 C2 稽核模式
<a name="rds-c2"></a>

C2 稽核模式是 Amazon RDS for SQL Server 資料庫參數群組中的參數。預設為停用。您可以透過將參數值更新為 1 來啟用它。啟用 C2 稽核模式時，它會稽核事件，例如使用者登入、預存程序呼叫，以及物件的建立和刪除。此模式會產生大量資料，因為它會稽核所有項目或什麼都不稽核。

**重要**  
Microsoft 計劃在未來版本的 SQL Server 中移除 C2 稽核模式。建議您避免使用此功能。

## 建立和檢視稽核
<a name="rds-creating-viewing"></a>

您可以使用涉及建立稽核和稽核規格的內建 SQL Server 稽核機制，來稽核 Amazon RDS for SQL Server 資料庫。 
+ 稽核日誌會使用具有存取儲存貯體必要許可的 IAM 角色，上傳至 S3 儲存貯體。 
+ 您可以在建立選項群組時選擇 IAM 角色、S3 儲存貯體、壓縮和保留期間。最長保留期間為 35 天。
+ 您可以建立選項群組，並將其連接到新的或現有的 Amazon RDS for SQL Server 資料庫執行個體。  稽核日誌存放在 中`D:\rdsdbdata\SQLAudit`。 
+ SQL Server 完成寫入至稽核日誌檔案後，或當檔案達到其大小限制時，Amazon RDS 會將檔案上傳至您的 S3 儲存貯體。
+ 如果您啟用保留，Amazon RDS 會將檔案移至位於 的保留資料夾中`D:\rdsdbdata\SQLAudit\transmitted`。稽核記錄會保存在資料庫執行個體上，直到稽核日誌檔案被上傳為止。 
+ 您也可以查詢 來尋找稽核記錄`dbo.rds_fn_get_audit_file`。 

對於異地同步備份執行個體，資料庫稽核規格物件會複寫至所有節點。  伺服器稽核和伺服器稽核規格不會複寫到所有節點，因此您應該手動建立這些節點。

### 設定選項群組
<a name="rds-configure-option-group"></a>

請依照下列步驟設定選項群組，在 Amazon RDS for SQL Server 資料庫執行個體上執行 SQL Server 稽核。如需詳細說明，請參閱 Amazon RDS 文件中的 [SQL Server 稽核](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html)。
+ 建立選項群組。
+ 將 [SQLSERVER\$1AUDIT](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) 選項新增至選項群組。
+ 對於 **S3 目的地**，請建立新的儲存貯體或選取稽核日誌的現有儲存貯體。
+ 對於 **IAM 角色**，建立新的角色或選擇具有所需政策的現有角色。如需詳細資訊，請參閱 [IAM 文件中的手動建立 SQL Server 稽核的 IAM 角色](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.IAM)。
+ 展開**其他資訊**，然後選取**啟用壓縮**以壓縮稽核日誌 （建議）。
+ 若要保留資料庫執行個體的稽核日誌，請選取**啟用保留**並指定保留期間 （最長 35 天）。
+ 將選項群組套用至新的或現有的 Amazon RDS for SQL Server 資料庫執行個體。
  + 針對新的資料庫執行個體，在啟動執行個體時套用選項群組。
  + 對於現有的資料庫執行個體，[請修改執行個體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)並連接選項群組。

### 建立稽核
<a name="rds-create-audit"></a>

若要建立伺服器稽核，請使用下列指令碼。此指令碼會在您指定的檔案路徑中建立稽核檔案。如需語法、引數和範例，請參閱 [Microsoft SQL Server 文件](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-transact-sql?view=sql-server-ver16)。若要避免錯誤，請檢閱 [Amazon RDS 文件中列出的限制清單。](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications)

```
--Creating the server audit
 use master
 GO
 CREATE SERVER AUDIT [Audit-<<servername>>]
 TO FILE  ( FILEPATH = N'D:\rdsdbdata\SQLAudit', MAXSIZE = 2 MB, RESERVE_DISK_SPACE = OFF)
 WITH ( QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE)
 GO
-- Enabling the server audit  
 ALTER SERVER AUDIT [Audit-<<servername>>] WITH (STATE = ON) ;
 GO
```

### 建立稽核規格
<a name="rds-create-audit-spec"></a>

建立伺服器稽核後，您可以使用下列程式碼建立伺服器稽核規格，以記錄伺服器層級事件。此規格決定在伺服器稽核期間要檢查的內容。如需語法、引數和範例，請參閱 [Microsoft SQL Server 文件](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-specification-transact-sql)。下列規格會稽核失敗的登入動作，並追蹤伺服器物件的建立、變更和刪除。如需動作清單，請參閱 [Microsoft SQL Server 文件](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions)。

```
--Creating server audit specification
 USE [master]
 GO
 CREATE SERVER AUDIT SPECIFICATION [Audit-Spec-<<servername>>]
 FOR SERVER AUDIT  [Audit-<<servername>>]
 ADD (FAILED_LOGIN_GROUP), ADD (SERVER_OBJECT_CHANGE_GROUP)
 GO
--Enables the audit 
 ALTER SERVER AUDIT [Audit-<<servername>>]  
 WITH (STATE = ON);  
 GO
```

您可以使用下列程式碼來建立記錄資料庫層級事件的資料庫稽核規格。此範例會稽核`INSERT`動作。如需語法、引數和更多範例，請參閱 [Microsoft SQL Server 文件](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-database-audit-specification-transact-sql)。

```
--Creating database audit specification
 USE [<<DBName>>]
 GO
 
 CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-<<DBName>>]
 FOR SERVER AUDIT [Audit-<<ServerName>>]
 ADD (INSERT ON DATABASE::[<<DBName>>] BY [dbo])
 WITH (STATE = ON)
 GO
```

### 檢視稽核日誌
<a name="rds-view-audit-log"></a>

使用下列查詢來檢視稽核日誌。稽核日誌會保留在資料庫執行個體中，直到上傳至 Amazon S3 為止。如果您啟用 [SQLSERVER\$1AUDIT](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) 選項的保留，Amazon RDS 會將檔案移至保留資料夾 `D:\rdsdbdata\SQLAudit\transmitted`。

您也可以將篩選條件變更為 ，以檢視保留資料夾中的稽核記錄`D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit`。

```
--Viewing audit logs
SELECT   * 
	FROM     msdb.dbo.rds_fn_get_audit_file
	             ('D:\rdsdbdata\SQLAudit\*.sqlaudit'
	             , default
	             , default )
--Viewing audit logs in retention folder
SELECT   * 
	FROM     msdb.dbo.rds_fn_get_audit_file
	             ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit'
	             , default
	             , default )
```

下列 AWS 和 Microsoft 文件會討論稽核 SQL Server 資料庫的其他選項：
+ SQL Server 延伸事件：請參閱 AWS 部落格文章在 [Amazon RDS for SQL Server 中設定延伸事件](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/)。
+ SQL Server 觸發：請參閱《[Amazon RDS 文件》中的建立在 Amazon RDS 事件上觸發的規則](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-cloud-watch-events.html)。
+ 變更追蹤：請參閱 Microsoft SQL Server 文件中的[追蹤資料變更](https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server)。
+ 變更資料擷取：請參閱《Amazon RDS 文件》中的[使用變更資料擷取](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.CDC.html)。
+ C2 稽核模式參數：請參閱 Microsoft SQL Server 文件中的 [c2 稽核模式伺服器組態選項](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/c2-audit-mode-server-configuration-option)。

## 監控
<a name="rds-monitoring"></a>

您可以使用 Amazon RDS 中的資料庫活動串流，將 SQL Server 稽核事件與來自 Imperva、McAfee 和 IBM 的資料庫活動監控工具整合。如需詳細資訊，請參閱 Amazon RDS 文件中的在 [Microsoft SQL Server 中稽核](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.Overview.html#DBActivityStreams.Overview.SQLServer-auditing)。