通过 EFS 加密、备份和复原 SQL Server 数据库

加密文件系统 (EFS) 是 Microsoft™ Windows™ 的一个功能部件,它使您能够以加密格式在硬盘上存储信息。EFS 支持使用高级的标准密码算法对文件进行透明加密和解密。如果您具有 SQL Server Standard Edition 2008、2008 SP3、2008 R2 SP2 、2012 和 2014,请使用此方法加密数据库文件。

开始之前

此任务假设您:
  1. 为满足以下条件的 SQL Server 服务选择服务帐户:
    • 在已加密的数据库及其备份的生存期内保持可用。
    • 根据需要可用于在网络中传输数据库或其备份。
    注:
    • 此服务帐户可以与用于 AppScan® Enterprise 的服务帐户相同或不同。
    • 使用一个服务帐户登录到 SQL Server 服务并加密通过该服务托管的任何数据库。
    • SQL Server 服务帐户在这些指示信息中将称为“服务帐户”。
  2. 找到数据库的文件路径(如果不同于此处所列的缺省位置)。您将需要此信息以用于步骤 3。您可以通过打开 Microsoft SQL Server Management Studio 来查找缺省位置。右键单击托管数据库的 SQL Server。单击属性 > 数据库设置 > 数据库缺省位置

关于此任务

运行配置向导之前,必须完成此过程;否则,将无法访问数据库。请参阅为 AppScan Enterprise 配置 SQL Server 数据库

过程

  1. 转至开始 > 管理工具 > 服务,并停止用于托管要加密的 AppScan Enterprise 数据库的 SQL Server 服务。缺省服务为 SQL Server (MSSQLSERVER)
  2. 右键单击服务的名称以打开属性对话框。在登录选项卡上,选择此帐户,输入服务帐户的凭证,然后单击确定
  3. 在 Windows 资源管理器中,右键单击数据库所在的文件夹,然后转至属性 > 安全性为服务帐户提供对 <databasename.mdf> 文件和父文件夹的读取和执行以及读取访问权。
    注: 已登录的用户的凭证将用于加密数据库。如果您未以服务帐户形式登录,请立即进行登录。
  4. 右键单击包含 <databasename.mdf> 文件的文件夹,然后转至属性 > 常规 > 高级属性。选中加密内容以便保护数据复选框并单击确定
    注:

    如果文件夹尚未加密,请在提示时选择将更改应用于该文件夹、子文件夹和文件。如果在运行服务器配置向导后选择此选项,那么不会加密数据库。如果在运行服务器配置向导后将此过程应用于数据库和对应的日志文件,那么数据库可能会进入“恢复暂挂”状态。然后,已加密数据库在 SQL Server Management 工具和 AppScan Enterprise 中不可访问。

  5. 在“服务”窗口中,启动用于托管 AppScan Enterprise 数据库的 SQL Server。

结果

DATA 文件夹 C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA(如果在 Microsoft SQL Server 2014 Standard 安装期间使用了缺省值)加密后在 Windows 资源管理器中将显示为绿色。在此过程后添加的任何数据库(包括服务器配置向导创建的 AppScan Enterprise 数据库)都会加密。

注: 只有对文件进行了加密的用户才能将其解密。您可以在属性 > 高级属性窗口上的“详细信息”部分中确定加密了特定文件的人员。已加密的数据库的备份将不会自动加密。遵循备份和复原 EFS 加密的数据库中的步骤进行操作。

备份和复原 EFS 加密的数据库

您可将已加密的备份数据库文件移至在同一 Windows 版本上托管的网络共享位置以保留文件加密。可以从已加密的数据库文件存储所在的任何位置复原数据库。当复原到 SQL Server 中时,该 Server 的服务应该是通过已加密数据库的用户的服务帐户凭证来运行。但是,已复原的数据库文件未加密,因此必须使用上述任务中的步骤将其加密。

过程

  1. 在 Windows 资源管理器中,展开数据库备份所在的文件夹,然后为服务帐户提供对 <databasename.bak> 文件的读取和执行以及读取访问权。
    注: 已登录的用户的凭证将用于加密数据库。如果您未以服务帐户形式登录,请立即进行登录。
  2. 右键单击 <databasename.bak> 文件并转至属性 > 常规 > 高级 > 加密内容以便保护数据,然后单击确定