Ola Hallengren:加密,但验证?

Lau*_*ker 5 sql-server backup encryption ola-hallengren sql-server-2017

我已经使用 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'
Run Code Online (Sandbox Code Playgroud)

备份运行良好,但验证没有:

Command: RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\...
Process Exit Code 1.
The step failed.
Run Code Online (Sandbox Code Playgroud)

Ola Hallengren 的脚本无法打开主密钥似乎是一个问题,因为这不起作用:

RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\<SERVER>_master_FULL_<DATE>_<TIME>.bak'
Run Code Online (Sandbox Code Playgroud)

但这确实:

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
Run Code Online (Sandbox Code Playgroud)

我是否也想拥有我的蛋糕并吃掉它?或者有没有办法同时使用 Ola 的脚本进行加密和验证?

Lau*_*ker 5

我找到了根本原因和解决方案。

Ola Hallengren 无法获取备份加密证书,因为不知道数据库主密钥 (DMK) 加密密码。DMK 还可以使用服务主密钥 (SMK) 进行加密,对于具有足够权限的连接会自动打开该密钥。

我已将 SMK 加密添加到 DMK,这允许 Ola 的脚本访问备份加密证书。

我想只有当海龟一直往下走时它才有效。:-P