转载来源 :Navicat使用教程:SQL Server中的磁盘加密 : http://www.safebase.cn/article-255744-1.html
摘要: Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。在现在的信息时代,加密敏感数据是十分有意义的。其实问题 .
Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。
在现在的信息时代,加密敏感数据是十分有意义的。其实问题也不在于加密,而在于采用哪种方法来加密。以下是三种主要广泛使用的数据库加密方法:
- 应用程序编程接口(API) - 应用程序级别
- 插件 - 数据库级别
- 透明数据加密 - 磁盘/操作系统级别
磁盘加密是最安全的,因为即使访问物理数据库服务器,黑客也无法读取数据。
Microsoft的透明数据加密(TDE)在SQL Server 2008,Azure SQL数据库和Azure SQL数据仓库数据文件中实现,通过在数据写入磁盘时加密数据库来实现此目的。同样,从磁盘读取时,数据未加密。所以,只有在内存中时,数据才处于未加密状态。
默认情况下,SQL Server根本不加密数据,更不用说加密磁盘了。激活磁盘加密需要几个步骤。在本篇文章中,我们将回顾如何在SQL Server中打开TDS。
1.创建主密钥
USE master;
GO
CREATE MASTER KEY ENCRYPTION
BY PASSWORD=Use a Strong Password For the Database Master Key
GO
2.创建或获取受主密钥保护的证书
USE master;
GO
CREATE CERTIFICATE My_TDE_Certificate
WITH SUBJECT=Certificate for TDE;
GO
3.创建数据库加密密钥并通过证书进行保护
USE MyDatabase
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate;
4.将数据库设置为使用加密
ALTER DATABASE MyDatabase SET ENCRYPTION ON;
GO
备份证书
虽然使用TDE加密数据库不需要此步骤,但是如果主数据库损坏,则可以从数据库备份中恢复加密数据,这一点非常重要。如果要将加密数据库移动到另一台服务器,还应备份证书。这是完成备份的代码:
USE master;
GO
BACKUP CERTIFICATE TDE_CERT_For_MyData
TO FILE = C:\temp\TDE_Cert_For_MyData.cer
WITH PRIVATE KEY (file=C:\temp\TDE_CertKey.pvk,
ENCRYPTION BY PASSWORD=Use a Strong Password for Backup Here);
确保将备份密码存储在安全的地方。如果必须重建承载加密数据库的服务器实例或需要将数据库移动到另一台服务器,则需要此密码才能还原证书。
数据库备份
使用TDE加密数据库的好处之一是数据库备份也将被加密,从而增强数据安全性。从SQL Server 2016开始,你还可以对启用TDE的数据库备份应用压缩。压缩数据库备份非常重要,因为它可以通过生成小于数据库的备份文件来节省磁盘空间。此外,它还缩短了恢复数据库所需的时间。
以下是如何将压缩应用于启用TDE的数据库备份:
BACKUP DATABASE [MyDatabase]
TO DISK = NE:\backup\MyDatabase_TDE_Compressed.bak
WITH NOFORMAT, NOINIT, NAME = NMyDatabase_TDE-Full Database Backup,
SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
GO