私は数年前からOla Hallengrenのスクリプトを使用しており、MSSQL2017への最近のアップグレードにより、暗号化されたバックアップのテストを開始できます。はい、マスターキーと暗号化証明書はバックアップされ、パスワードマネージャーに保存されています。
次のパラメーターの組み合わせで問題が発生しています。
EXECUTE [OlaHallengren].[DatabaseBackup]
@Databases = 'SYSTEM_DATABASES'
,@Directory = N'\\<SHARE>\SQLBackup\Daily'
,@BackupType = 'FULL'
,@Verify = 'Y'
,@CheckSum = 'Y'
,@Encrypt = 'Y'
,@EncryptionAlgorithm = 'AES_256'
,@ServerCertificate = 'DBBackupEncryptCert<SERVERNAME>'
,@LogToTable = 'Y'
バックアップは問題なく実行されますが、検証は次のことを行いません。
Command: RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\...
Process Exit Code 1.
The step failed.
これは機能しないため、Ola Hallengrenのスクリプトがマスターキーを開くことができないという問題があるようです。
RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\<SERVER>_master_FULL_<DATE>_<TIME>.bak'
しかし、これはします:
use master;
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<PASSWORD>';
RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\<SERVER>_master_FULL_<DATE>_<TIME>.bak'
CLOSE MASTER KEY
私もケーキを作って食べようとしていますか?または、Olaのスクリプトで暗号化と検証の両方を行う方法はありますか?
根本的な原因と解決策を見つけました。
Ola Hallengrenは、データベースマスターキー(DMK)暗号化パスワードを知らないため、バックアップ暗号化証明書にアクセスできませんでした。 DMKは、十分な権限を持つ接続用に自動的に開かれるサービスマスターキー(SMK)を使用して暗号化することもできます。
SMK暗号化をDMKに追加しました。これにより、Olaのスクリプトがバックアップ暗号化証明書にアクセスできるようになります。
カメがずっと下にいる場合にのみ機能すると思います。 :-P