我想要從內部部署環境還原 Amazon Relational Database Service (Amazon RDS) 的加密備份檔案或 Microsoft Azure 備份。
簡短說明
SQL Server 2014 (12.x) 及更新版本提供備份加密。為備份指定加密演算法與加密器。這會建立一個加密的備份檔案。
**注意:**此功能與透明資料加密 (TDE) 加密不同。如需更多資訊,請參閱 SQL Server 中的透明資料加密支援。
解決方法
若要將本機或 Microsoft Azure 加密備份還原至 Amazon RDS,您必須擁有伺服器憑證的備份。若沒有憑證,您無法將備份還原至 Amazon RDS。如需更多資訊,請參閱 Microsoft 網站上的備份加密。
還原本機加密備份
開始還原加密備份之前,請確認您已建立以下資源:
- Amazon Simple Storage Service (Amazon S3) 儲存貯體。
- 已在選項群組中設定 TDE 和 SQLSERVER_BACKUP_RESTORE 的 Amazon RDS 執行個體。
-
在您的內部部署帳戶中使用以下指令碼建立主要資料庫金鑰:
USE Master;GO
CREATE MASTER KEY ENCRYPTION
BY PASSWORD='InsertStrongPasswordHere';
GO
如需更多資訊,請參閱 Microsoft 網站上的 CREATE MASTER KEY (Transact-SQL)。
-
在您的內部部署帳戶中建立受主要金鑰保護的憑證:
CREATE CERTIFICATE TDE_CertWITH
SUBJECT='Database_Encryption';
GO
如需更多資訊,請參閱 Microsoft 網站上的 CREATE CERTIFICATE (Transact-SQL)。
-
使用以下指令碼啟動原生備份:
BACKUP DATABASE [TestDB] TO DISK =N'E:\Backup\EncryptedBackupFromOnpremise.bak' WITH COMPRESSION,ENCRYPTION( ALGORITHM = AES_256, SERVER CERTIFICATE = [TDE_Cert] ), STATS = 10
GO
**注意:**最佳實務是開啟 Amazon RDS 還原的壓縮功能。如需更多資訊,請參閱 Microsoft 網站上的備份壓縮 (SQL Server)。
-
使用 AWS 管理主控台,將加密備份上傳至 S3 儲存貯體 tde-db。
-
執行以下命令以還原資料庫:
exec msdb.dbo.rds_restore_database @restore_db_name='onpremdb',
@s3_arn_to_restore_from='arn:aws:s3:::tde-db/EncryptedBackupFromOnpremise.bak';
還原 Microsoft Azure 加密備份
開始將加密備份還原至 Microsoft 容器之前,請確認您已建立以下資源:
- Amazon S3 儲存貯體。
- 已設定 TDE 和 SQLSERVER_BACKUP_RESTORE 選項群組的 RDS 執行個體。
- 已設定憑證來加密備份的內部部署帳戶。
- 作用中的 Microsoft Azure 帳戶。
-
在 Microsoft Azure 中建立儲存體帳戶。如需更多資訊,請參閱 Microsoft 網站上的建立 Azure 儲存體帳戶。
-
根據共用存取簽章建立憑證。如需更多資訊,請參閱 Microsoft 網站上的為您的儲存體容器建立 SAS 權杖。
USE master CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
-- this name must match the container path, start with https and must not contain a forward slash at the end
WITH IDENTITY='SHARED ACCESS SIGNATURE'
-- this is a mandatory string and should not be changed
, SECRET = 'sharedaccesssignature'
GO
-
啟動原生加密備份至 Microsoft Azure 儲存體:
BACKUP DATABASE [TestDB] TO URL = N'https://backuptestsanketh.blob.core.windows.net/backup/TestDB_backup_2022_09_29_112330.bak' WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N'BackupEnc-Full Database Backup', NOSKIP, NOREWIND, NOUNLOAD, COMPRESSION,
ENCRYPTION(ALGORITHM = AES_128, SERVER CERTIFICATE = [On_PremTDE_Cert]), STATS = 10
GO
**注意:**Amazon RDS 不支援直接從 Microsoft Azure 儲存體容器還原備份。您必須將備份下載至中介系統。
-
使用 AWS 管理主控台,將加密備份上傳至 S3 儲存貯體 tde-db。
-
執行以下命令以還原加密備份:
exec msdb.dbo.rds_restore_database@restore_db_name='AzureBackupEncrypted',
@s3_arn_to_restore_from='arn:aws:s3:::tde-db/backup/azure-encrypted.bak'
**注意:**如果您收到錯誤,請參閱在 RDS for SQL Server 中使用原生備份和還原時可能發生哪些常見問題?
相關資訊
將啟用 TDE 的 SQL Server 資料庫遷移至 Amazon RDS for SQL Server
如何從內部部署環境在 RDS for SQL Server 中還原使用 AWS Key Management Service (KMS) 加密的備份檔案?