got*_*tqn 5 sql-server backup encryption sql-server-2016 sql-server-2017
我已通过密码证书加密,我想将其用于备份加密。问题是我无法使用证书(在 T-SQL 语句或维护计划中),因为我无法打开它 - 似乎没有OPEN CERTIFICATE
命令。
我希望通过密码加密证书,因为我们的目标是只有一个用户负责在 SQL Server 实例中创建/插入证书。没有其他人能够导出证书并恢复加密的备份。
是否有可能,或者为了加密备份,我必须始终使用数据库主密钥加密证书?
据我所知:不,不能在BACKUP
命令中使用受密码保护的证书;证书或非对称密钥需要由数据库主密钥 (DMK) 保护。
BACKUP
命令语句的语法无法为证书或非对称密钥指定密码。不,您没有OPEN
证书(甚至非对称密钥)。您只需要OPEN
对称密钥和数据库主密钥(它们是对称密钥)。
尝试使用受密码保护的证书时,会出现以下错误(已添加强调):
消息 33101,级别 16,状态 1,第 123 行
无法使用证书“BackupEncryption”,因为其私钥不存在或不受数据库主密钥的保护。SQL Server 需要能够自动访问用于此操作的证书的私钥。
我寄予厚望,创建一个受 DMK 保护的证书会起作用,因为它通常会强制您首先执行OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password';
以对 DMK 执行任何操作,而我确实做到了必须这样做才能创建证书,但是,一旦创建了证书(是的,我确实执行了CLOSE MASTER KEY;
),该BACKUP
语句仍然可以工作,而无需显式打开 DMK。这很奇怪,因为证书的私钥不应该在不执行的情况下可用OPEN
,并且加密内容肯定需要私钥(尝试使用已删除私钥的证书进行加密备份将失败)。
Sooooo,看来您需要在 SQL Server 之外处理此问题。如:
您可以通过以下几种方式完成此操作:
通过存储过程:
BACKUP...
xp_cmdshell
加密SQL 代理作业
BACKUP...
CMD脚本:
BACKUP...
归档时间: |
|
查看次数: |
408 次 |
最近记录: |