SQL Server 备份加密分步指南
从 SQL Server 2014 开始,数据库管理员可以启用备份加密来保护他们的敏感数据。在本文中,我将向您介绍如何满足先决条件需求以及实现它的详细步骤。
作为数据库管理员,保护我们的数据是我们最重要的任务之一。我们当然不希望有人在未经授权的情况下随意查看我们的数据库,只需将备份恢复到他们自己的硬件即可,尤其是当我们将敏感数据存储在其中时。
因此,为了不泄露数据,进行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 中执行备份加密,等等,我建议你选择专业备份软件支持所有版本。
在开始之前,我们需要了解两件事。
1. 加密备份不能附加到现有备份集。因此我们需要备份到一个新的备份集。
2. 我们首先需要指定加密算法和加密器来保护加密密钥。以下是支持的加密算法和加密器。SQL Server备份加密一般我们选择AES 256和证书。
加密SQL服务器备份创建时需要SMK、DMK和证书,先备份好。
首先让我向您解释一下它们是什么以及 SQL Server 备份加密的工作原理。
✦ Step 1. 检查DMK是否存在
启动SSMS并连接到您的实例。单击上方栏中的“新建查询”并输入以下语句。
选择 * 从 master.sys.symmetric_keys
单击“执行”。在结果中,您可以检查 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
现在我们已经创建了 4 个用于 SQL Server 备份加密的文件。
本部分介绍如何对 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. 然后单击“执行”创建加密备份。
✦ 方式 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 Server Express和2014之前的版本中不可用。因此,您可能需要支持所有版本的第三方软件来为您完成。我建议你申请傲梅企业备份网络版. 原因如下:
为您提供180天免费试用:
要正确使用 企业备份网络版,特别是如果您想管理局域网内的多台计算机,您需要先进入“计算机”页面。单击上方栏的“安装客户端程序”可手动或远程下载客户端计算机上的 Agent 。
对于那些手动下载客户端程序的计算机,您需要请求对其进行控制才能进行进一步的操作。
单击“计算机” > “不受控制的计算机”,选择一台或多台客户端计算机,然后单击上方栏中的“请求控制” 。
他们的电脑上会弹出一个权限请求窗口,一旦收到所有权限,您就可以随时管理他们。
1.点击"任务" > “新建任务”,选择SQL Server备份,新建一个备份任务。
在弹出窗口中,您可以通过将光标移动到任务名称并单击它来“更改任务名称”。
然后按照任务名称下方的 3 个步骤进行操作。
2.第1步,点击“添加计算机”添加您要备份的受控客户端计算机。
3、第2步,点击“添加”选择要备份的单个或多个SQL实例和数据库。
4.第3步,选择一个位置作为“目标路径”。您可以单击“添加存储”来添加共享或NAS 路径作为存储端。
5. 然后点击“设置”。在“常规”页面中选中“为备份启用加密”,“键入并确认密码”。
您可以启用“电子邮件通知”并在设置中选择“压缩”级别。
单击设置旁边的“计划”,您还可以指定自动运行此任务的日期和时间。
点击“高级”,您可以选择执行 完整备份或SQL数据库差异备份。
6. 现在您可以单击“开始备份”以选择“仅创建任务”或“创建并执行任务”。
创建后,任务将单独列在“任务”中,以供进一步编辑或恢复。恢复时,它会列出所有备份,并通过名称中的备份类型和日期来区分它们。
您可以选择将备份还原到本地服务器,或者局域网内将 SQL 数据库恢复到另一台服务器。
启动SSMS并连接到您的实例。单击上方栏中的“新建查询”并输入以下语句。
RESTORE HEADERONLY
FROM DISK = N' filepath\Filename.bak ';
GO
单击“执行”。如果未加密,则它们将为NULL。
备份加密是一项有用的功能,可避免数据泄露。在本文中,我分析了何时应该执行 SQL Server 备份加密,并介绍了 3 种实现方法。
但是,它仅从 SQL Server 2014 开始,在 Express 版本上不可用。所以,如果你使用的是Express或者2014之前的版本,建议你选择傲梅企业备份网络版,在SQL Server中进行备份加密。它可以为您节省很多精力。
除了SQL数据库备份外,该软件还集中了许多其他实用功能,例如文件、系统、磁盘和分区备份。所有这些都可以毫不费力地加密。