

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

# 支援 SQL Server 的透明資料加密
<a name="Appendix.SQLServer.Options.TDE"></a>

Amazon RDS 支援使用透明資料加密 (TDE)，來加密執行 Microsoft SQL Server 之資料庫執行個體上所儲存的資料。TDE 會在資料寫入至儲存體之前自動將其加密，並在從儲存體中讀取資料時自動將其解密。

Amazon RDS 支援下列 SQL Server 版本的 TDE：
+ SQL Server 2022 Standard 和 Enterprise Edition
+ SQL Server 2019 Standard 和 Enterprise Editions
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**注意**  
RDS for SQL Server 不支援唯讀資料庫的 TDE。

SQL Server 的透明資料加密會使用雙層金鑰架構來提供加密金鑰管理。從資料庫主要金鑰產生的認證是用來保護資料加密金鑰。資料庫加密金鑰會在使用者資料庫上，實際執行資料加密及解密作業。Amazon RDS 會備份並管理資料庫主金鑰與 TDE 憑證。

透明資料加密係使用於需要加密敏感資料的情況。例如，您可能想要將資料檔案和備份提供給第三方，或處理與安全相關的法律合規性問題。您無法加密 SQL Server 的系統資料庫，例如 `model` 或 `master` 資料庫。

透明資料加密的詳細討論超出本指南的範圍，但請確定您了解每一個加密演算法和金鑰的安全優缺點。如需 SQL Server 之透明資料加密的相關資訊，請參閱 Microsoft 文件中的[透明資料加密 (TDE)](http://msdn.microsoft.com/en-us/library/bb934049.aspx)。

**Topics**
+ [為 RDS for SQL Server 開啟 TDE](#TDE.Enabling)
+ [在 RDS for SQL Server 上加密資料](TDE.Encrypting.md)
+ [在 RDS for SQL Server 上備份與還原 TDE 憑證](TDE.BackupRestoreRDS.md)
+ [備份與還原內部部署資料庫的 TDE 憑證](TDE.BackupRestoreOnPrem.md)
+ [為 RDS for SQL Server 關閉 TDE](TDE.Disabling.md)

## 為 RDS for SQL Server 開啟 TDE
<a name="TDE.Enabling"></a>

若要開啟 RDS for SQL Server 資料庫執行個體的透明資料加密，請在與該資料庫執行個體關聯的 RDS 選項群組中指定 TDE 選項。

1. 判斷資料庫執行個體是否已與具有 TDE 選項的選項群組相關聯。若要檢視資料庫執行個體相關聯的選項群組，請使用 RDS 主控台、 [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 命令或 API 操作 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html)。

1.  如果資料庫執行個體並未與 TED 已開啟的選項群組關聯，則您有兩個選擇。您可以建立一個選項群組，並新增 TDE 選項，您也可以修改相關的選項群組，以增加該選項。
**注意**  
在 RDS 主控台中，此選項會命名為 `TRANSPARENT_DATA_ENCRYPTION`。在 AWS CLI 和 RDS API 中，它命名為 `TDE`。

   如需建立或修改選項群組的相關資訊，請參閱 [使用選項群組](USER_WorkingWithOptionGroups.md)。如需將選項新增至選項群組的相關資訊，請參閱[將選項新增至選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。

1.  建立資料庫執行個體與具有 TDE 選項之選項群組之間的關聯。如需使資料庫執行個體與選項群組產生關聯的相關資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

### 選項群組考量
<a name="TDE.Options"></a>

TDE 選項是一個永續性選項。除非所有資料庫執行個體和備份均不再與選項群組相關聯，否則您無法將它從該選項群組中移除。一旦您將 TDE 選項新增至選項群組，該選項群組就只能與使用 TDE 的資料庫執行個體相關聯。如需選項群組中持續選項的詳細資訊，請參閱 [選項群組概觀](USER_WorkingWithOptionGroups.md#Overview.OptionGroups)。

因為 TDE 選項為持久性選項，所以在選項群組與相關聯的資料庫執行個體之間可能會發生衝突。在下列情況中會發生衝突：
+ 目前選項群組具有 TDE 選項，而且您可將其取代為沒有 TDE 選項的選項群組。
+ 您可以從資料庫快照還原至新的資料庫執行個體，其中沒有包含 TDE 選項的選項群組。如需此案例的詳細資訊，請參閱[選項群組的考量事項](USER_CopySnapshot.md#USER_CopySnapshot.Options)。

### SQL Server 效能考量
<a name="TDE.Perf"></a>

使用透明資料加密會影響 SQL Server 資料庫執行個體的效能。

如果資料庫位在至少有一個已加密資料庫的資料庫執行個體上，則未加密資料庫的效能會降低。因此，建議您將已加密和未加密資料庫保存在獨立的資料庫執行個體上。

# 在 RDS for SQL Server 上加密資料
<a name="TDE.Encrypting"></a>

一旦將 TDE 選項新增至選項群組，Amazon RDS 即會產生在加密程序中使用的憑證。然後，您可以使用憑證執行 SQL 陳述式，將資料庫執行個體上資料庫中的資料加密。

下列範例會使用 RDS 建立的憑證 (稱為 `RDSTDECertificateName`)，來加密稱為 `myDatabase` 的資料庫。

```
 1. ---------- Turning on TDE -------------
 2. 
 3. -- Find an RDS TDE certificate to use
 4. USE [master]
 5. GO
 6. SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%'
 7. GO
 8. 
 9. USE [myDatabase]
10. GO
11. -- Create a database encryption key (DEK) using one of the certificates from the previous step
12. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
13. ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName]
14. GO
15. 
16. -- Turn on encryption for the database
17. ALTER DATABASE [myDatabase] SET ENCRYPTION ON
18. GO
19. 
20. -- Verify that the database is encrypted
21. USE [master]
22. GO
23. SELECT name FROM sys.databases WHERE is_encrypted = 1
24. GO
25. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
26. GO
```

使用 TDE 加密 SQL Server 資料庫需要的時間取決於幾個因素。其中包括資料庫執行個體的大小、執行個體是否使用佈建 IOPS 儲存體、資料的量，以及其他因素。

# 在 RDS for SQL Server 上備份與還原 TDE 憑證
<a name="TDE.BackupRestoreRDS"></a>

RDS for SQL Server 提供預存程序，可供備份、還原與捨棄 TDE 憑證。RDS for SQL Server 也提供一個函數可用於檢視還原的使用者 TDE 憑證。

使用者 TDE 憑證用於將資料庫還原至內部部署且 TDE 已開啟的 RDS for SQL Server。這些憑證的字首為 `UserTDECertificate_`。還原資料庫之後，及使其可供使用之前，RDS 會修改 TDE 已開啟的資料庫，以使用 RDS 產生的 TDE 憑證。這些憑證的字首為 `RDSTDECertificate`。

使用者 TDE 憑證會保留在 RDS for SQL Server 資料庫執行個體上，除非您使用 `rds_drop_tde_certificate` 預存程序放置這些憑證。如需詳細資訊，請參閱[捨棄還原的 TDE 憑證](#TDE.BackupRestoreRDS.Drop)。

您可以使用使用者 TDE 憑證從來源資料庫執行個體還原其他資料庫。要還原的資料庫必須使用相同的 TDE 憑證並開啟 TDE。您不必再次匯入 (還原) 同一個憑證。

**Topics**
+ [先決條件](#TDE.BackupRestoreRDS.Prereqs)
+ [限制](#TDE.Limitations)
+ [備份 TDE 憑證](#TDE.BackupRestoreRDS.Backup)
+ [還原 TDE 憑證](#TDE.BackupRestoreRDS.Restore)
+ [檢視還原的 TDE 憑證](#TDE.BackupRestoreRDS.Show)
+ [捨棄還原的 TDE 憑證](#TDE.BackupRestoreRDS.Drop)

## 先決條件
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

務必先完成下列任務，您才能在 RDS for SQL Server 上備份或還 TDE 憑證。[設定原生備份與還原](SQLServer.Procedural.Importing.Native.Enabling.md) 中描述前三個。

1. 建立 Amazon S3 一般用途儲存貯體或目錄儲存貯體，以存放檔案以進行備份和還原。

   建議您為資料庫備份與 TDE 憑證備份使用個別的儲存貯體。

1. 建立用於備份和還原檔案的 IAM 角色。

   IAM 角色必須是 AWS KMS key的使用者，也是其管理員。

   使用目錄儲存貯體時，除了[手動建立原生備份與還原的 IAM 角色](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)具有目錄儲存貯體的 所需的許可之外，不需要額外的許可。

   使用 S3 資源時，除了 所需的許可之外，IAM 角色還需要下列許可[手動建立原生備份與還原的 IAM 角色](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)：
   + S3 儲存貯體資源上的 `s3:GetBucketAcl`、`s3:GetBucketLocation` 和 `s3:ListBucket`

1. 將 `SQLSERVER_BACKUP_RESTORE` 選項新增至資料庫執行個體上的選項群組。

   這是 `TRANSPARENT_DATA_ENCRYPTION` (`TDE`) 選項新增的部分。

1. 確定您有對稱加密 KMS 金鑰。您有下列選項：
   + 如果您的帳戶中有現有的 KMS 金鑰，您可以使用它。無需採取進一步動作。
   + 若您的帳戶中並無現有的對稱加密 KMS 金鑰，請藉由遵循《*AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)來建立 KMS 金鑰。

1. 啟用 Amazon S3 整合，在資料庫執行個體與 Amazon S3 之間傳輸檔案。

   如需啟用 Oracle Amazon S3 整合的詳細資訊，請參閱 [整合 Amazon RDS for SQL Server 資料庫執行個體和 Amazon S3](User.SQLServer.Options.S3-integration.md)。

   請注意，目錄儲存貯體不支援 S3 整合。只有 需要此步驟[備份與還原內部部署資料庫的 TDE 憑證](TDE.BackupRestoreOnPrem.md)。

## 限制
<a name="TDE.Limitations"></a>

使用預存程序備份和還原 TDE 憑證具有以下限制：
+ `SQLSERVER_BACKUP_RESTORE` 與 `TRANSPARENT_DATA_ENCRYPTION` (`TDE`) 選項必須新增至與資料庫執行個體產生關聯的選項群組。
+ 多可用區域資料庫執行個體不支援 TDE 憑證備份和還原。
+ 不支援取消 TDE 憑證備份和還原任務。
+ 您不能將使用者 TDE 憑證用於 RDS for SQL Server 資料庫執行個體上任何其他資料庫的 TDE 加密。您可以將它用於從 TDE 已啟用且使用相同 TDE 憑證的來源資料庫執行個體中僅還原其他資料庫。
+ 您只能刪除使用者 TDE 憑證。
+ RDS 支援的使用者 TDE 憑證數量上限為 10 個。如果數量超過 10 個，請捨棄未使用的 TDE 憑證，然後再試一次。
+ 憑證名稱不能為空白或為 null。
+ 還原憑證時，憑證名稱不能包含關鍵字 `RDSTDECERTIFICATE`，且開頭必須為 `UserTDECertificate_` 字首。
+ `@certificate_name` 參數只能包含以下字元：a-z、0-9、@、\$1、\$1 和底線 (\$1)。
+ `@certificate_file_s3_arn` 的副檔名必須為 .cer (不區分大小寫)。
+ `@private_key_file_s3_arn` 的副檔名必須為 .pvk (不區分大小寫)。
+ 私有金鑰檔案的 S3 中繼資料必須包含 `x-amz-meta-rds-tde-pwd` 標籤。如需詳細資訊，請參閱[備份與還原內部部署資料庫的 TDE 憑證](TDE.BackupRestoreOnPrem.md)。
+ RDS for SQL Server 不支援使用跨帳戶金鑰搭配 TDE。

## 備份 TDE 憑證
<a name="TDE.BackupRestoreRDS.Backup"></a>

若要備份 TDE 憑證，請使用 `rds_backup_tde_certificate` 預存程序。具有下列語法。

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id',
    [@overwrite_s3_files=0|1];
```

下列是必要參數：
+ `@certificate_name` – 所要備份 TDE 憑證的名稱。
+ `@certificate_file_s3_arn` – Amazon S3 中憑證備份檔案的目的地 Amazon Resource Name (ARN)。
+ `@private_key_file_s3_arn` – 可保護 TDE 憑證的私有金鑰檔案的目的地 S3 ARN。
+ `@kms_password_key_arn` – 用於加密私有金鑰密碼的對稱 KMS 金鑰其 ARN。

以下參數為選用：
+ `@overwrite_s3_files` – 指出在 S3 中是否覆寫現有的憑證與私有金鑰檔案：
  + `0` – 不覆寫現有檔案。此為預設值。

    將 `@overwrite_s3_files` 設為 0 時，如果檔案已存在，則傳回錯誤。
  + `1` – 即使現有檔案不是備份檔案，只要是指定的名稱，就覆寫檔案。

**Example 備份 TDE 憑證**  

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='RDSTDECertificate20211115T185333',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE',
    @overwrite_s3_files=1;
```

## 還原 TDE 憑證
<a name="TDE.BackupRestoreRDS.Restore"></a>

您可以使用 `rds_restore_tde_certificate` 預存程序來還原 (匯入) 使用者 TDE 憑證。具有下列語法。

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';
```

下列是必要參數：
+ `@certificate_name` – 所要還原 TDE 憑證的名稱。名稱必須以 `UserTDECertificate_` 字首開頭。
+ `@certificate_file_s3_arn` – 用於還原 TDE 憑證的備份檔案其 S3 ARN。
+ `@private_key_file_s3_arn` – 待還原的 TDE 憑證其私有金鑰備份檔案的 S3 ARN。
+ `@kms_password_key_arn` – 用於加密私有金鑰密碼的對稱 KMS 金鑰其 ARN。

**Example 還原 TDE 憑證**  

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_myTDEcertificate',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

## 檢視還原的 TDE 憑證
<a name="TDE.BackupRestoreRDS.Show"></a>

您可以使用 `rds_fn_list_user_tde_certificates` 函數來檢視已還原 (已匯入) 的使用者 TDE 憑證。具有下列語法。

```
SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();
```

輸出結果與以下內容相似。並非所有的資料欄均會在此顯示。


|  |  |  |  |  |  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| name | certificate\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | AnyCompany Shipping | 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af | 0x6BB218B34110388680B FE1BA2D86C695096485B5 | AnyCompany Shipping | 2022-04-05 19:49:45.0000000 | 2023-04-05 19:49:45.0000000 | NULL | 

## 捨棄還原的 TDE 憑證
<a name="TDE.BackupRestoreRDS.Drop"></a>

若要捨棄您未使用的已還原 (已匯入) 使用者 TDE 憑證，請使用 `rds_drop_tde_certificate` 預存程序。具有下列語法。

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
```

以下是必要參數：
+ `@certificate_name` – 所要捨棄 TDE 憑證的名稱。

您只能捨棄已還原 (已匯入) 的 TDE 憑證。您不能捨棄 RDS 建立的憑證。

**Example 捨棄 TDE 憑證**  

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';
```

# 備份與還原內部部署資料庫的 TDE 憑證
<a name="TDE.BackupRestoreOnPrem"></a>

您可以備份內部部署資料庫的 TDE 憑證，日後再將憑證還原到 RDS for SQL Server。您還可以將 RDS for SQL Server TDE 憑證還原到內部部署資料庫執行個體。

**注意**  
RDS for SQL Server 不支援使用跨帳戶金鑰搭配 TDE。

下列程序會備份 TDE 憑證和私有金鑰。系統會使用從對稱加密 KMS 金鑰產生的資料金鑰來加密私有金鑰。

**備份內部部署 TDE 憑證**

1. 使用 AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html) 命令產生資料金鑰。

   ```
   aws kms generate-data-key \
       --key-id my_KMS_key_ID \
       --key-spec AES_256
   ```

   輸出結果與以下內容相似。

   ```
   {
   "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
   BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
   2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==",
   "Plaintext": "U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=",
   "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33"
   }
   ```

   您在下一步可以使用純文字輸出作為私有金鑰密碼。

1. 備份 TDE 憑證，如下列範例所示。

   ```
   BACKUP CERTIFICATE myOnPremTDEcertificate TO FILE = 'D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (
   FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key.pvk',
   ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=');
   ```

1. 將憑證備份檔案儲存至 Amazon S3 憑證儲存貯體。

1. 將私有金鑰備份檔案儲存到 S3 憑證儲存貯體，並在檔案的中繼資料中使用以下標籤：
   + 索引鍵 – `x-amz-meta-rds-tde-pwd`
   + 值 – 來自產生資料金鑰的 `CiphertextBlob` 值，如下列範例所示。

     ```
     AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
     BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
     2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==
     ```

以下程序會將 RDS for SQL Server TDE 憑證還原至內部部署資料庫執行個體。您可以使用憑證備份、對應的私有金鑰檔案與資料金鑰，在目的地資料庫執行個體上複製與還原 TDE 憑證。還原的憑證由新伺服器的資料庫主要金鑰加密。

**還原 TDE 憑證**

1. 將 TDE 憑證備份檔案和私有金鑰檔案從 Amazon S3 複製到目的地執行個體。如需從 Amazon S3 複製檔案的詳細資訊，請參閱 [在 RDS for SQL Server 與 Amazon S3 之間傳輸檔案](Appendix.SQLServer.Options.S3-integration.using.md)。

1. 使用 KMS 金鑰解密輸出密碼文字，以擷取資料金鑰的純文字。密碼文字位於私有金鑰備份檔案的 S3 中繼資料中。

   ```
   aws kms decrypt \
       --key-id my_KMS_key_ID \
       --ciphertext-blob fileb://exampleCiphertextFile | base64 -d \
       --output text \
       --query Plaintext
   ```

   您在下一步可以使用純文字輸出作為私有金鑰密碼。

1. 使用下列 SQL 命令還原 TDE 憑證。

   ```
   CREATE CERTIFICATE myOnPremTDEcertificate FROM FILE='D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (FILE = N'D:\tde-cert-key.pvk',
   DECRYPTION BY PASSWORD = 'plain_text_output');
   ```

如需 KMS 解密的詳細資訊，請參閱 *AWS CLI 命令參考*中 KMS 一節的[解密](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html)。

在目的地資料庫執行個體上還原 TDE 憑證後，您可以使用該憑證還原加密的資料庫。

**注意**  
您可以使用相同的 TDE 憑證來加密來源資料庫執行個體上的多個 SQL Server 資料庫。若要將多個資料庫遷移至目的地執行個體，請僅將與這些資料庫關聯的 TDE 憑證複製到目的地執行個體一次。

# 為 RDS for SQL Server 關閉 TDE
<a name="TDE.Disabling"></a>

若要關閉 RDS for SQL Server 資料庫執行個體的 TDE，首先請確定沒有任何加密的物件留在資料庫執行個體上。若要這麼做，請解密或捨棄這些物件。如果資料庫執行個體中存在加密物件，則您無法關閉資料庫執行個體的 TDE 功能。如果已還原 （匯入） 加密的使用者 TDE 憑證，則應將其捨棄。當您使用主控台從選項群組中移除 TDE 選項時，主控台會顯示它正在處理。此外，如果選項群組與加密資料庫執行個體或資料庫快照有關，則會建立一次錯誤事件。

下列範例會從稱為 `customerDatabase` 的資料庫中移除 TDE 加密。

```
 1. ------------- Removing TDE ----------------
 2. 
 3. USE [customerDatabase]
 4. GO
 5. 
 6. -- Turn off encryption of the database
 7. ALTER DATABASE [customerDatabase]
 8. SET ENCRYPTION OFF
 9. GO
10. 
11. -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while
12. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
13. GO
14. 
15. -- Drop the DEK used for encryption
16. DROP DATABASE ENCRYPTION KEY
17. GO
18. 
19. -- Drop a user TDE certificate if it was restored (imported)
20. EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
21. 
22. -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated
23. USE [master]
24. GO
25. ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE
26. GO
```

所有物件都解密後，會有兩個選擇：

1. 您可以將資料庫執行個體修改為關聯至不具有 TDE 選項的選項群組。

1. 您可以從選項群組中移除 TDE 選項。