TDEencryptionSQL Server 2008数据库的步骤是什么?

我们一直在尝试这里的步骤: http : //msdn.microsoft.com/en-us/library/cc278098.aspx但不断收到此错误:消息15151,级别16,状态1,行1无法find证书的tdeCert ',因为它不存在或者你没有权限。

这意味着你没有正确地按照步骤操作。 确保tdeCert存在于master.sys.certificates中的select * from master.sys.certificates ,因为证书是在步骤2创build的: CREATE CERTIFICATE tdeCert WITH SUBJECT = 'TDE Certificate'并且必须存在。 您跳过了一个步骤,或者在错误的数据库中创build了证书,或者在证书名称中包含拼写错误(包括区分大小写的服务器)。

您需要注意使用正确的数据库:

 use master; CREATE MASTER KEY ENCRYPTION BY PASSWORD= 'password'; go CREATE CERTIFICATE tdeCert WITH SUBJECT = 'TDE Certificate'; go BACKUP CERTIFICATE tdeCert TO FILE = 'C:\location' WITH PRIVATE KEY ( FILE = 'C:\location2', ENCRYPTION BY PASSWORD = 'password'); go use your_db CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE tdeCert 

注意use masteruse your_db

透明数据encryption(TDE)通过使用存储在数据库引导logging中的数据库encryption密钥(DEK)encryption数据库。 DEK又由数据库主密钥保护,而数据库主密钥又由服务主密钥保护

  1. 第一步是创build一个主密钥:

     USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Password'; GO 
  2. 创build主encryption密钥后,创build将用于encryption数据库的证书:

     CREATE CERTIFICATE servercertificate WITH SUBJECT = 'DataCertificate'; 
  3. 在创build主密钥和证书时,可以使用CREATE DATABASE ENCRYPTION KEY语句为特定数据库创buildDEK:

     USE DecryptTesting; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE servercertificate; GO 

您会在结果窗口中看到警告:

警告:用于encryption数据库encryption密钥的证书尚未备份。 您应该立即备份证书和与证书关联的私钥。 如果证书不可用或者您必须在另一台服务器上还原或附加数据库,则必须同时备份证书和私钥,否则将无法打开数据库。

使用TDE时,请在主数据库中创build服务器证书的备份。 您可以使用BACKUP CERTIFICATE语句来创build证书和私钥的备份,这两者都是证书恢复所必需的。 私钥密码不一定与数据库主密钥密码相同:

  BACKUP CERTIFICATE ServerCertificate TO FILE = 'ServerCertExport' WITH PRIVATE KEY ( FILE = 'PrivateKeyFile', ENCRYPTION BY PASSWORD = '<PrivateKeyPasswordHere>' ); 

现在你可以encryption数据库了:

  ALTER DATABASE DecryptTesting SET ENCRYPTION ON;