SQLServer Transparent Data Encryption

原创 2011年11月02日 15:12:15

在现实环境中,我们会遇到数据库备份磁盘丢失或者被盗的情况,此时恶意破坏方只需还原或者附加数据库即可浏览数据。接下来我将介绍透明数据加密(Transparent Data Encryption)的方法来保护你的数据库。如果数据A,使用TDE加密之后,即时恶意破坏方有了备份磁盘,也不能还原或者附加,这是因为数据库使用了被证书保护的加密数据密钥。在没有安装证书的情况下,通过任何文件(MDF,LDF,bak...)都不是不能还原的.

1.什么是TDE

透明数据库加密可对数据和日志文件执行实时I/O加密和解密.这种加密使用数据库加密密钥(Data Encrtyption Key),DEK是使用存储在服务器的master数据库中的证书保护的对称密码,或者是由EKM模块保护的非对称密钥.使用(Advanced Encryption Standard)或者3DES(Data Encryption Standard)加密算法来加密数据,并且无需更改现有应用程序.

2.如何使用TDE

1.创建主密钥

2.创建或者获取由该密钥保护的证书

3.创建数据库加密密钥并且由该证书保护该密钥

4.将数据库设置为可加密

下面通实例对TEST DB进行TDE加密

--Create a master key
USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '~qaz123[]\';
GO
--Create a certificate
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
GO
--Create a database encryption key and protect it by the certificate
USE TEST
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
--Set the database to use encryption
USE TEST
ALTER DATABASE TEST
SET ENCRYPTION ON;
GO

当你完成上面的操作之后,接下来验证下加密数据的详细信息

SELECT DB_NAME(database_id) AS DatabaseName, * FROM sys.dm_database_encryption_keys
此时你会发现除了TEST DB 外还有tempdb DB,这是因为只有你对任一数据库加密的时候,也会自动的为tempdb 加密

3.查看TDE是否起作用

在另外一台Server上面使用bak文件来还原TEST数据库

RESTORE DATABASE TEST 
FROM DISK = 'E:\数据库\测试数据库\TEST.bak'
WITH MOVE 'TEST' TO 'E:\\数据库\测试数据库\TEST.mdf',
MOVE 'TEST_log' TO 'E:\数据库\测试数据库\TEST.ldf',
NOUNLOAD, REPLACE
执行完上面的代码之后

Message如下

Msg 33111, Level 16, State 3, Line 1
Cannot find server certificate with thumbprint '0x739E848FD2ECB7D945D39B7836BCD65B55D75D43'.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.


你使用附加数据库结果也是一样的,怎么解决这个问题了,使用添加同样的证书在这台Server
在添加该证书到这台Server之前,先在以前的Server上面备份证书到文件(其实这个操作我在添加证书的时候已经做啦)

代码如下

--backup certificate nad primary key to file
USE master
GO
BACKUP CERTIFICATE MyServerCert TO FILE = 'D:\Test DB\Test\MyServerCert.cert'
WITH PRIVATE KEY (  
FILE = 'D:\Test DB\Test\MyServerCertPrivate.key',
ENCRYPTION BY PASSWORD = '~qaz123[]\');
GO

备份成功之后,使用备份成功的证书,在目标Server上面创建证书

USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '~qaz123[]\';
GO
USE master
GO
CREATE CERTIFICATE MyServerCert
FROM FILE = 'E:\学习\数据库\测试数据库\MyServerCert.cert'
WITH PRIVATE KEY (
FILE = 'E:\学习\数据库\测试数据库\MyServerCertPrivate.key'
, DECRYPTION BY PASSWORD = '~qaz123[]\')
GO

创建成功,查询下证书是否创建成功

SELECT * FROM sys.certificates where name = 'MyServerCert'

现在再次还原数据库

RESTORE DATABASE TEST 
FROM DISK = 'E:\数据库\测试数据库\TEST.bak'
WITH MOVE 'TEST' TO 'E:\\数据库\测试数据库\TEST.mdf',
MOVE 'TEST_log' TO 'E:\数据库\测试数据库\TEST.ldf',
NOUNLOAD, REPLACE
此时数据库还原成功,大功告成!



oracle 10g 11g 透明数据加密(Transparent Data Encryption)

Oracle TDE的全称是Transparent Data Encryption 透明数据加密,从10gr2开始支持基于列的加密,从11g开始支持基于表空间的加密。它的优点是对应用透明,管理简便,无...
  • changyanmanman
  • changyanmanman
  • 2014-12-08 22:15:12
  • 3466

Oracle 11g 新特性 -- Transparent Data Encryption (透明数据加密TDE) 增强 说明

一.TransparentData Encryption (TDE:透明数据加密) 说明 Orace TDE 是Orcle 10R2中的一个新特性,其可以用来加密数据文件里的数据,保护从操作系统层面上...
  • tianlesoftware
  • tianlesoftware
  • 2012-12-07 14:14:14
  • 5020

ORACLE-Transparent Data Encryption (TDE)

ORACLE-Transparent Data Encryption (TDE) 使用分析 Posted by huosi in security Oracle 在10.2中引入了 tra...
  • lcb0913
  • lcb0913
  • 2012-05-31 00:20:05
  • 1256

Oracle Transparent Data Encryption

Oracle Transparent Data Encryption 透明加密(一) Transparent Data Encryption透明机密技术是Oracle在10g版本之后推出的数据层加密...
  • ghostgant
  • ghostgant
  • 2012-04-19 21:42:36
  • 523

Oracle 11g 使用TDE及ORA-28362

作用:防止丢失介质后会被别人读取到数据。在wallet打开的情况下,使用sql语句查询实际上是没有限制的。 1.设定wallet的位置F:\app\Administrator\product\11....
  • guogang83
  • guogang83
  • 2017-04-13 09:55:36
  • 436

SQLServer Transparent Data Encryption

在现实环境中,我们会遇到数据库备份磁盘丢失或者被盗的情况,此时恶意破坏方只需还原或者附加数据库即可浏览数据。接下来我将介绍透明数据加密(Transparent Data Encryption)的方法来...
  • ws_hgo
  • ws_hgo
  • 2011-11-02 15:12:15
  • 3277

TTEFS_User 应用层透明加密开发控件

1 产品综述 1.1 开发背景 目前基于双缓存模型的文件系统驱动技术已成为文档安全管理类产品的主流核心技术。由于该项技术需要安装和加载驱动,所需的系统权限较高。在某些特定的系统环境或者技术管理条款...
  • Byte2Code
  • Byte2Code
  • 2017-07-21 10:39:57
  • 144

oracle 11g Transparent Data Encryption

http://www.oracle.com/technetwork/database/options/advanced-security/index-099011.html http://www.o...
  • cnbird2008
  • cnbird2008
  • 2013-02-03 15:34:05
  • 425

Oracle数据安全解决方案-透明数据加密TDE

select file_name,tablespace_name from dba_data_files; create temporary tablespace wal_temp9...
  • haiyang5233233
  • haiyang5233233
  • 2017-10-23 16:03:21
  • 334

hadoop 透明加密 kms transparent

hadoop透明加密  kms 简介       Hadoop Key Management Server(KMS)是一个基于HadoopKeyProvider API编写的密...
  • shubingzhuoxue
  • shubingzhuoxue
  • 2015-11-27 16:05:14
  • 1561
收藏助手
不良信息举报
您举报文章:SQLServer Transparent Data Encryption
举报原因:
原因补充:

(最多只允许输入30个字)