对 SQL Server 数据库启用透明数据加密

SQL Server 具有内置的加密 TDE(透明数据加密)机制,该机制对驻留在数据库中或驻留在物理介质上的备份中的数据进行加密。

开始之前

TDE 仅在 Microsoft SQL Server 2008 和更高版本的 Enterprise Edition 上可用。对于 Standard Edition 选项,请阅读通过 EFS 加密、备份和复原 SQL Server 数据库

关于此任务

要在 SQL Server 上启用 TDE,您必须拥有与在主数据库中创建数据库主密钥和证书相关联的正常许可权。您还必须拥有对用户数据库的 CONTROL 许可权。

启用加密对于数据库管理员是一项常见任务;为了方便起见,我们提供了要使用的 SQL 脚本(适合于典型 SQL Server 配置):EnableTDE.zip。(如果文件无法下载,请右键单击链接并将文件保存到硬盘驱动器。)

注: 对于升级用户:
  1. 要提高数据库升级性能,请在数据库升级完成后启用 TDE。
  2. 尽管您可以随时执行这些步骤,但是在完成这些步骤之前,将不会加密数据库。在升级过程之前启用 TDE 将在整个升级过程中以及此过程之后保护您的数据库。

过程

  1. 打开您所安装的 SQL Server 2008、2008R2、2012 或 2014 的 SQL Management Studio。
  2. 连接到您要加密的数据库。这将有助于确保数据库已创建并且可用。
  3. 转至您下载了 EnableTDE.zip 文件的位置。解压缩此文件并打开脚本(文件 > 打开 > 文件)。您将注意到将在服务器上执行的若干命令。
  4. 在执行脚本之前,必须针对您的环境设置三个字段。在脚本的注释部分中,这些字段全部都标记为“ACTION REQUIRED”:
    1. DECLARE @MKPassword:用于在 [master] 数据库中创建主密钥的主密钥密码
    2. DECLARE @DatabaseName :要对其启用加密的数据库的名称。
    3. (Optional) DECLARE @BackupPassword:证书备份密码。此密码用于保护证书备份,并且在其他机器上复原证书时需要此密码。
  5. 在这些字段已更新之后,启动脚本(查询 > 执行)脚本如何在 SQL Server 上启用 TDE
  6. 在脚本已完成后,结果将显示在 SQL Management Studio 的“消息”窗口中。
    注: 您也可以通过 SQL Management Studio 进行验证。右键单击“数据库名称 -> 任务 -> 管理数据库加密”。您将看到已选中“开启数据库加密”的复选框。

结果

重要: 完成后,确保写下脚本中使用的密码,并创建证书备份副本。证书备份包含两个文件:AppScanEntCert.bak 和 AppScanEntCert.pvk。缺省情况下,这两个文件将与数据库 .mdf 文件一起存储在以下文件夹中:
  • (SQL 2014) C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA
  • (SQL 2012) C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA
  • (SQL 2008) C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
  • (SQL 2008 R2) C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA