SQL Server 2014:无加密配置新实例还原加密备份及证书安装步骤
没问题,我来一步步给你捋清楚操作流程,顺便明确解答你的疑问:
操作步骤详解
1. 先创建数据库主密钥(Master Key)
新实例没有默认的数据库主密钥,而我们要创建的证书需要靠它来保护,所以这是第一步必须做的操作。执行以下T-SQL命令:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '你的高强度密码';
提示:密码要符合SQL Server的复杂度要求,最好把这个密码妥善保存,后续如果需要备份主密钥会用到。
2. 使用现有证书和PVK文件创建证书
必须在新实例上创建这个证书——因为你的备份是用原实例的证书加密的,新实例没有这个证书的话,根本无法解密备份文件。执行下面的T-SQL命令:
CREATE CERTIFICATE 你的证书名称 FROM FILE = 'C:\实际路径\你的证书文件.cer' WITH PRIVATE KEY ( FILE = 'C:\实际路径\你的PVK文件.pvk', DECRYPTION BY PASSWORD = '你的PVK文件密码短语' );
注意事项:
- 替换命令里的证书名称、文件路径、密码短语为你实际的信息
- 要确保SQL Server服务账户对这两个文件有读取权限,不然会报权限错误
3. 还原加密的数据库备份
证书创建完成后,就可以正常还原备份了。如果不确定备份里的数据库文件逻辑名,可以先执行下面的命令查看:
RESTORE FILELISTONLY FROM DISK = 'C:\实际路径\你的备份文件.bak';
然后用查到的逻辑名执行还原命令:
RESTORE DATABASE 你的目标数据库名 FROM DISK = 'C:\实际路径\你的备份文件.bak' WITH REPLACE, -- 如果目标实例已有同名数据库,用这个参数覆盖 MOVE '原数据文件逻辑名' TO 'C:\新路径\你的数据库文件.mdf', MOVE '原日志文件逻辑名' TO 'C:\新路径\你的数据库日志文件.ldf';
额外提醒
- 权限问题是这类操作的高频坑:要确保SQL Server服务账户对备份文件、证书/PVK文件、以及数据库文件的存放路径都有读写权限
- 还原完成后,记得定期备份这个证书和私钥,要是证书丢了,以后这个数据库的加密备份就没法还原了
- 如果原证书已经过期,可能需要先更新证书有效期再操作,不过一般还原时只要证书存在就能解密
内容的提问来源于stack exchange,提问作者Jon




