欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > SQL Server 备份加密和解密还原

SQL Server 备份加密和解密还原

2025/5/10 0:04:15 来源:https://blog.csdn.net/ocean42234111/article/details/147739605  浏览:    关键词:SQL Server 备份加密和解密还原

打开SSMS

1.--创建证书

       CREATE CERTIFICATE MyCertificate_backup

       WITH SUBJECT = 'My Certificate for backup';

--查询证书

       SELECT name, start_date, expiry_date

       FROM sys.certificates; -- 显示证书名称、生效日期及过期日期

2.--创建主密钥

--如果您的环境中还没有主密钥,您可能需要创建一个。主密钥用于保护证书的私钥。

       CREATE MASTER KEY ENCRYPTION BY PASSWORD = '强密码';

       -- 查询主密钥:

       SELECT * FROM sys.symmetric_keys

3.使用证书备份

--使用证书备份

      

BACKUP DATABASE [BOSA]

       TO  DISK = N'F:\SQL_Backup\FULL\BOSA_20250418_152936.bak'

       WITH ENCRYPTION (ALGORITHM =AES_256, SERVER CERTIFICATE = MyCertificate_backup);  -- MyCertificate_backup 为上边创建的证书名称

       GO

       --查询备份文件是否加密

       RESTORE HEADERONLY

FROM DISK = N'F:\SQL_Backup\FULL\BOSA_20250418_092736.bak';

-- 备份数据库主密钥

       BACKUP MASTER KEY

       TO FILE = 'E:\SQL_Backup\SQL_Certificate\DMKfilename.key '

       ENCRYPTION BY PASSWORD = 'xxxxxxx';

       GO

       -- 备份证书

       BACKUP CERTIFICATE MyCertificate_backup

       TO FILE = 'E:\SQL_Backup\SQL_Certificate\MyCertificateFilename.cer '

       WITH PRIVATE KEY(

       FILE = 'E:\SQL_Backup\SQL_Certificate\MyCertificateKeyFilename.key ',

       ENCRYPTION BY PASSWORD = ' xxxxxxx ');

       GO

4. 异地还原

 注: 证书本地还原正常,异地还原报错

--异地还原

       USE master;

       GO

       RESTORE DATABASE [BOSA_20250418]

       FROM DISK='E:\sfisbak\BOSA_20250418_152936.bak' WITH NORECOVERY,

    MOVE 'BOSA' TO 'H:\SFIS_Data\BOSA20250418.mdf',

    MOVE 'BOSA_log' TO 'H:\SFIS_Data\BOSA20250418_log.ldf'

       GO

5异地导入证书

--删除证书

DROP CERTIFICATE MyCertificate_backup;

--导入证书

create certificate MyCertificate_backup

from file =N'E:\sfisbak\MyCertificateFilename.cer'

with private key

(

       file=N'E:\sfisbak\MyCertificateKeyFilename.key',

       decryption by password=N'',

       encryption by password=N''

)

--正常还原

USE master;

       GO

       RESTORE DATABASE [BOSA_20250418]

       FROM DISK='E:\sfisbak\BOSA_20250418_152936.bak' WITH NORECOVERY,

    MOVE 'BOSA' TO 'H:\SFIS_Data\BOSA20250418.mdf',

    MOVE 'BOSA_log' TO 'H:\SFIS_Data\BOSA20250418_log.ldf',

       replace;

   

       GO

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词