none
SQL 2008 TDE 证书加密机制? RRS feed

  • 问题

  • 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,问题比较初级,还望各位大侠海涵。
    2010年8月13日 7:45

答案

  •  

    证书被数据库主密钥保护,  也就是被数据库主密钥加密. 实际上是私钥被保护.

    当你将证书备份后,如果没有指定导出私钥,是可以直接还原的.

    例如: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
    2010年8月13日 8:29
    版主

全部回复

  •  

    证书被数据库主密钥保护,  也就是被数据库主密钥加密. 实际上是私钥被保护.

    当你将证书备份后,如果没有指定导出私钥,是可以直接还原的.

    例如: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
    2010年8月13日 8:29
    版主
  • 非常感谢您的及时回复。

    我也刚想明白了,实际上整个过程用到源服务器主密钥的地方就是导出私钥这一瞬间,备份之后正如您所说就是密码保护了,和源服务器主密钥没有关系了。

     

    2010年8月13日 8:39