MSSQL数据库加密与TDE加密后的数据库如何加入到可用性组(AVAILABILITY GROUP)

历史简介

SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数。

SQL Server 2008时代,则引入的了透明数据加密(TDE),所谓的透明数据加密,就是加密在数据库中进行,但从程序的角度来看就好像没有加密一样,和列级加密不同的是,TDE加密的级别是整个数据库。使用TDE加密的数据库文件或备份在另一个没有证书的实例上是不能附加或恢复的。

单节点TDE加密

贴一张官方文档的图

TDE加密数据库加入可用性组

前提:

1、主节点证书和密钥的备份

2、备节点证书和密钥的恢复

后续:

  1. 创建主数据库的日志备份。

  2. 创建主数据库的完整数据库备份。

  3. 在承载辅助副本的服务器实例上,还原数据库备份。

  4. 从主数据库创建新的日志备份。

  5. 在辅助数据库上还原此日志备份。

正文

如果数据库进行了加密或者数据库甚至包含数据库加密密钥 (DEK),则您无法使用 新建可用性组向导 或 将数据库添加到可用性组向导 将该数据库添加到某一可用性组。 即使已对加密的数据库进行了解密,其日志备份也可能包含加密的数据。 在此情况下,在该数据库上完整的初始数据同步可能会失败。 其原因在于,还原日志操作可能要求数据库加密密钥 (DEK) 使用的证书,但该证书可能不可用。

1、主节点创建主密钥

要在test数据库上配置TDE,我们应该首先在master数据库中创建一个主密钥。每个SQL Server实例只能创建一个主密钥。托管在同一SQL实例中并启用了TDE的所有用户数据库将共享对同一主键的依赖关系。下面的CREATE MASTER KEY T-SQL语句用于在master数据库下创建主密钥,并且此主密钥将通过复杂的密码进行加密。最好将该密码备份保存在安全的地方:

USE master

GO

CREATE MASTER KEY ENCRYPTION

BY PASSWORD='Q123456.q@';

GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值