积极答复者
SQL 2008 TDE 证书加密机制?

问题
-
USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>'; go CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate'; go USE AdventureWorks2008R2; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE AdventureWorks2008R2 SET ENCRYPTION ON; GO
从以上启用TDE的代码可以看出,生成的证书是被Master Key加密的,但是我将证书备份后,到其他服务器(或实例)上恢复,并没有用到原服务器的Master Key.
不知道其中的原理机制是什么?劳烦各位大侠帮忙解释一下。谢谢!初次接触TDE,问题比较初级,还望各位大侠海涵。
答案
-
证书被数据库主密钥保护, 也就是被数据库主密钥加密. 实际上是私钥被保护.
当你将证书备份后,如果没有指定导出私钥,是可以直接还原的.
例如:BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert';
当你指定了私钥,例如
BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert'
WITH PRIVATE KEY ( FILE = 'c:\storedkeys\sales05key' ,
ENCRYPTION BY PASSWORD = '997jkhUbhk$w4ez0876hKHJH5gh' );这种情况下,私钥是被密码保护的. 这是和以前数据的数据库主密钥已经没有关系了,你还原的时候需要指定密码即可.
我觉得和TDE没有关系...
有dba的职位吗(北京的),请联系我 stswordman#hotmail.com- 已编辑 LiweiyinMicrosoft employee, Moderator 2010年8月13日 8:49 更正错误:密钥锁-->密码
- 已标记为答案 LiweiyinMicrosoft employee, Moderator 2010年8月13日 8:49
全部回复
-
证书被数据库主密钥保护, 也就是被数据库主密钥加密. 实际上是私钥被保护.
当你将证书备份后,如果没有指定导出私钥,是可以直接还原的.
例如:BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert';
当你指定了私钥,例如
BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert'
WITH PRIVATE KEY ( FILE = 'c:\storedkeys\sales05key' ,
ENCRYPTION BY PASSWORD = '997jkhUbhk$w4ez0876hKHJH5gh' );这种情况下,私钥是被密码保护的. 这是和以前数据的数据库主密钥已经没有关系了,你还原的时候需要指定密码即可.
我觉得和TDE没有关系...
有dba的职位吗(北京的),请联系我 stswordman#hotmail.com- 已编辑 LiweiyinMicrosoft employee, Moderator 2010年8月13日 8:49 更正错误:密钥锁-->密码
- 已标记为答案 LiweiyinMicrosoft employee, Moderator 2010年8月13日 8:49