什么时候需要执行 SQL Server 备份加密?

作为数据库管理员,保护我们的数据是我们最重要的任务之一。我们当然不希望有人在未经授权的情况下随意查看我们的数据库,只需将备份恢复到他们自己的硬件即可,尤其是当我们将敏感数据存储在其中时。

因此,为了不泄露数据,进行SQL Server 备份加密几乎是必须的。我强烈建议您在这些情况下执行 SQL Server 备份加密:

  • 您的数据库中有敏感数据
  • 您要将数据库备份存储在异地或云端
  • 您希望将访问权限限制为只有获得授权的人才能访问

是否支持 SQL Server 版本备份加密?

在 SQL Server 2014 之前,通常使用透明数据加密 (TDE) 来加密静态数据,但它会显着降低查询性能并增加 CPU 消耗。

幸运的是,自SQL Server 2014以来,新的备份加密选项允许我们在创建备份时加密备份,只有在我们指定加密算法和加密器来保护加密密钥之后。 

但是,备份加密在 SQL Server Express、SQL Server Web 和 SQL Server 2014 之前的版本上仍然不可用。因此,如果您使用的是 SQL Server Express、Web,或者您想在 SQL Server 2012、2008 中执行备份加密,等等,我建议你选择专业备份软件支持所有版本。

SQL Server 2014

SQL Server 2014及以后版本如何加密备份

在开始之前,我们需要了解两件事。

1. 加密备份不能附加到现有备份集。因此我们需要备份到一个新的备份集。

2. 我们首先需要指定加密算法和加密器来保护加密密钥。以下是支持的加密算法和加密器。SQL Server备份加密一般我们选择AES 256和证书。

  • “支持的加密算法”:ES 128、AES 192、AES 256 和 Triple DES。
  • “加密器”:证书或非对称密钥。

SQL Server 备份加密的先决条件

加密SQL服务器备份创建时需要SMK、DMK和证书,先备份好。 

首先让我向您解释一下它们是什么以及 SQL Server 备份加密的工作原理。

  • Service Master Key (SMK) : SMK是我们在安装SQL Server时自动生成并存储在系统主数据库中的,对于每个实例都是唯一的。它将用于加密数据库主密钥。
  • Database Master Key (DMK):DMK对于每个实例的每个系统主数据库都是唯一的。DMK 用于保护证书或非对称密钥。
  • Certificate : Certificate 可以包含一个受数据库主密钥保护的私钥,或一个非对称密钥(最好不要选择它)。它用于加密数据库备份。

Step 1. 检查DMK是否存在

启动SSMS并连接到您的实例。单击上方栏中的“新建查询”并输入以下语句。

选择 * 从 master.sys.symmetric_keys

单击“执行”。在结果中,您可以检查 DMK 的存在。如果没有,那么我们需要创建一个。

检查 SMK 和 DMK

✦ 步骤 2. 创建 DMK

输入以下语句并单击“执行”

-- 创建数据库主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD=' password '

✦ 步骤 3. 创建证书

-- 创建备份证书
USE master
GO
CREATE CERTIFICATE Certificate
WITH SUBJECT = ' SQL Backup Certificate ';
GO

✦ 步骤 4. 备份 SMK

-- 备份服务主密钥
USE master
GO
BACKUP SERVICE MASTER KEY
TO FILE = ' filepath\SMKfilename.key '
ENCRYPTION BY PASSWORD = ' SMKpassword ';
GO

✦ 步骤 5. 备份 DMK

-- 备份数据库主密钥
BACKUP MASTER KEY
TO FILE = ' filepath \DMKfilename.key '
ENCRYPTION BY PASSWORD = ' DMKpassword ';
GO

✦ 步骤 6. 备份证书

-- 备份证书
BACKUP CERTIFICATE Certificate
TO FILE = ' filepath \CertificateFilename.cer '
WITH PRIVATE KEY(
FILE = ' filepath \CertificateKeyFilename.key ',
ENCRYPTION BY PASSWORD = ' CertificatePassword ');
GO

创建和备份 DMK 和证书

现在我们已经创建了 4 个用于 SQL Server 备份加密的文件。

加密 SQL 数据库备份的 3 种常用方法

本部分介绍如何对 SQL 数据库备份进行加密。基本上,当你创建了一个DMK和一个证书,备份它们之后,你只需要再做2件事,就是选择“备份加密” “选项”,和按照正常的备份过程备份到另一个媒体集。其余步骤都是一样的。

✦ 方式1: 使用T-SQL的SQL Server备份加密

1. 启动 SSMS 并连接到您的实例。单击上方栏中的新建查询,输入以下语句。

-- 使用加密备份数据库
BACKUP DATABASE databasename
TO DISK = ' filepath\filename.bak '
WITH ENCRYPTION (ALGORITHM = AES_256 , SERVER CERTIFICATE = certificatename )

2. 然后单击“执行”创建加密备份。

使用 T-SQL 的备份加密

✦ 方式 2: 使用 SSMS GUI 的 SQL Server 备份加密

1. 启动SSMS并连接到您的实例。右键单击要备份的数据库名称,然后选择“任务”>“备份...”

备份任务

2.在“常规”页面中选择“备份类型”“目标”

一般页面

3. 然后转到“媒体选项”页面。选择“备份到新的媒体集,并擦除所有现有的备份集”。为新集合“命名并写一些”“描述”

备份到新媒体集

4. 转到“备份选项”页面,选中“加密备份”,选择“加密算法”“证书或非对称密钥”

启用备份加密

5. 然后单击“确定”开始加密备份。

✦ 方式3:使用维护计划的SQL Server备份加密

1. 启动SSMS并连接到您的实例。展开“管理”菜单并右键单击“维护计划”,选择“新建维护计划…”

新维护计划

2. 点击“对象资源管理器”旁边的“工具箱”,双击“备份数据库任务”创建一个新的备份任务。

备份任务

3. 双击右侧空白处的任务进行“编辑”

4.在“常规”页面中选择“备份类型” 和单个或多个 “数据库”,然后选择“目标”

选择数据库

5. 在选项页面勾选“备份加密”,并选择“算法”“证书或非对称密钥”

备份加密

6. 然后单击“确定”保存更改。现在您可以保存计划并在SQL Server 代理作业中运行它。

启用 SQL Server 代理

一种轻松加密 SQL 备份的方法(支持所有版本)

SQL Server 备份加密虽然方便,但在SQL Server Express和2014之前的版本中不可用。因此,您可能需要支持所有版本的第三方软件来为您完成。我建议你申请傲梅企业备份网络版. 原因如下:

  • “轻松的过程”:傲梅企业备份网络版 将 SQL Server 数据库备份的过程简化为 3 个主要步骤。凭借其直观的界面,您可以在创建时通过简单的点击和密码设置来加密所有版本的数据库备份。
  • 远程备份 LAN 内的另一台计算机:它允许您从一台控制计算机集中控制 LAN 内的所有笔记本电脑、工作站和服务器。您可以远程备份单个或多个 SQL 数据库,这样您就不必为移动备份而冒数据泄露的风险。
  • “远程还原到另一台计算机”:您也可以直接将 SQL 备份还原到局域网内的另一台受控计算机。

为您提供180天免费试用:

要正确使用 企业备份网络版,特别是如果您想管理局域网内的多台计算机,您需要先进入“计算机”页面。单击上方栏的“安装客户端程序”可手动或远程下载客户端计算机上的 Agent 。

安装客户端程序

对于那些手动下载客户端程序的计算机,您需要请求对其进行控制才能进行进一步的操作。

单击“计算机” > “不受控制的计算机”,选择一台或多台客户端计算机,然后单击上方栏中的“请求控制” 。

请求控制

他们的电脑上会弹出一个权限请求窗口,一旦收到所有权限,您就可以随时管理他们。

如何创建加密的 SQL Server 备份?

1.点击"任务" > “新建任务”,选择SQL Server备份,新建一个备份任务。

SQL 服务器备份

在弹出窗口中,您可以通过将光标移动到任务名称并单击它来“更改任务名称”。

SQL Server 备份过程

然后按照任务名称下方的 3 个步骤进行操作。

2.第1步,点击“添加计算机”添加您要备份的受控客户端计算机。

添加计算机

3、第2步,点击“添加”选择要备份的单个或多个SQL实例和数据库。

选择单个或多个数据库

4.第3步,选择一个位置作为“目标路径”。您可以单击“添加存储”来添加共享或NAS 路径作为存储端。

选择路径

5. 然后点击“设置”。在“常规”页面中选中“为备份启用加密”“键入并确认密码”

备份加密

您可以启用“电子邮件通知”并在设置中选择“压缩”级别。

单击设置旁边的“计划”,您还可以指定自动运行此任务的日期和时间。

点击“高级”,您可以选择执行 完整备份或SQL数据库差异备份。

高级设置

6. 现在您可以单击“开始备份”以选择“仅创建任务”“创建并执行任务”

开始备份

创建后,任务将单独列在“任务”中,以供进一步编辑或恢复。恢复时,它会列出所有备份,并通过名称中的备份类型和日期来区分它们。

您可以选择将备份还原到本地服务器,或者局域网内将 SQL 数据库恢复到另一台服务器

如何检查 SQL Server 备份是否加密?

启动SSMS并连接到您的实例。单击上方栏中的“新建查询”并输入以下语句。

RESTORE HEADERONLY
 FROM DISK = N' filepath\Filename.bak '; 
GO

单击“执行”。如果未加密,则它们将为NULL

概括

备份加密是一项有用的功能,可避免数据泄露。在本文中,我分析了何时应该执行 SQL Server 备份加密,并介绍了 3 种实现方法。

但是,它仅从 SQL Server 2014 开始,在 Express 版本上不可用。所以,如果你使用的是Express或者2014之前的版本,建议你选择傲梅企业备份网络版,在SQL Server中进行备份加密。它可以为您节省很多精力。

除了SQL数据库备份外,该软件还集中了许多其他实用功能,例如文件、系统、磁盘和分区备份。所有这些都可以毫不费力地加密。