TDE 加密 SQL Server 2008 数据库的步骤是什么?

TDE 加密 SQL Server 2008 数据库的步骤是什么?

我们一直在尝试以下步骤: http://msdn.microsoft.com/en-us/library/cc278098.aspx 但一直收到此错误:消息 15151,级别 16,状态 1,第 1 行找不到证书“tdeCert”,因为它不存在或您没有权限。

答案1

这意味着您没有正确执行这些步骤。确保 tdeCert 存在于 中select * from master.sys.certificates,因为证书是在步骤 2 中创建的:CREATE CERTIFICATE tdeCert WITH SUBJECT = ‘TDE Certificate’并且必须存在。您要么跳过了某个步骤,要么在错误的数据库中创建了证书,要么证书名称有拼写错误(包括区分大小写的服务器上的大小写)。

答案2

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

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

答案3

透明数据加密 (TDE) 使用存储在数据库引导记录中的数据库加密密钥 (DEK) 来加密数据库。DEK 又受数据库主密钥的保护,而数据库主密钥又受服务主密钥的保护

  1. 第一步是创建主加密密钥:

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

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

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

您将在结果窗口中收到一条警告:

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

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

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

现在您可以加密数据库:

    ALTER DATABASE DecryptTesting SET ENCRYPTION ON;

相关内容