Chapter 1 Securing Your Server and Network(11):使用透明数据库加密
未经作者允许,不论什么人不得以“原创”形式公布,也不得已用于商业用途,本人不负责不论什么法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38368737
前言:
假设没有对数据库文件(MDF/LDF等)做权限控制。攻击者能够把这些文件复制走,然后附加到自己机器上进行分析。
第一层保护就是对SQL Server文件所在的NTFS文件系统进行权限管控。
假设希望进一步保护数据库,能够使用透明数据库加密(Transparent Database Encryption,TDE),这个功能能够保护相应数据库的全部文件,无论有多少个文件。
由于文件已经加密。即使这些文件被复制走,假设没有数据库主密钥,也一样不能使用。同一时候,这样的加密不影响用户对数据库的使用。开发者不须要对此做额外的工作。
须要注意。仅仅有开发版、且一般和数据中心版才支持TDE。
实现:
1. 创建server加密主密钥:
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '强password';
2. 立即备份主密钥,并放到安全的地方,假设丢失了主密钥,将导致自己都无法使用:
BACKUP MASTER KEY TO FILE = '\\path\SQL1_master.key' ENCRYPTION BY
PASSWORD = '强password';
当中password必须复合Windows 安全策略要求。而且SQL Server服务帐号要有对相应文件夹的写权限。
3. 在Master库中创建server证书:
CREATE CERTIFICATE TDECert WITH SUBJECT = 'TDE Certificate';
4. 备份证书:
BACKUP CERTIFICATE TDECert TO FILE = '\\path\SQL1_TDECert.cer'
WITH PRIVATE KEY (
FILE = '\\path\SQL1_TDECert.pvk',
ENCRYPTION BY PASSWORD = '另外一个强password'
);
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38398813
5. 创建相应数据库的数据库加密密钥:
USE 目标数据库;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE TDECert; --TDECert为证书名
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38398813
6. 启用数据库加密:
ALTER DATABASE 目标数据库 SET ENCRYPTION ON;
原理:
TDE自己主动加密磁盘上的数据和日志文件,不须要对数据库额外改动。而且能够加密全部数据库或日志备份。实现方式也非常easy。
对于加密算法,通常能够使用AES_128/192/256 或者Triple_des_3key。
当中TRIPLE-DES强度更高。
可是可能影响性能。
对于TDE的性能分析,能够訪问这篇文章:http://www.databasejournal.com/features/mssql/article.php/3815501/Performance-Testing-SQL-2008146s-Transparent-Data-Encryption.htm(Performance Testing SQL 2008's Transparent Data Encryption。SQL Server 2008 TDE/透明数据库加密性能測试)。
假设须要还原加密后的数据库文件到另外一台server,须要首先还原证书到目标server:
USE master;
CREATE CERTIFICATE TDECert FROM FILE = '\\path\SQL1_TDECert.cer'
WITH PRIVATE KEY (
FILE = '\\path\SQL1_TDECert.pvk',
DECRYPTION BY PASSWORD = 'password'
);
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38398813
然后就能開始还原数据库或日志文件。
下一篇:http://blog.csdn.net/dba_huangzj/article/details/38438363
Chapter 1 Securing Your Server and Network(11):使用透明数据库加密的更多相关文章
- Chapter 1 Securing Your Server and Network(5):使用SSL加密会话
原文:Chapter 1 Securing Your Server and Network(5):使用SSL加密会话 原文出处:http://blog.csdn.net/dba_huangzj/art ...
- Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击
原文:Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击 原文出处:http://blog.csdn.net/dba_huang ...
- Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证
原文:Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证 原文出处:http://blog.csdn.net/dba_huan ...
- Chapter 1 Securing Your Server and Network(8):停止未使用的服务
原文:Chapter 1 Securing Your Server and Network(8):停止未使用的服务 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse
原文:Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse 原文出处:http://blog.csdn.net/dba_h ...
- Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙
原文:Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙 原文出处:http://blog.csdn.net/dba_hu ...
- Chapter 1 Securing Your Server and Network(4):使用虚拟服务帐号
原文:Chapter 1 Securing Your Server and Network(4):使用虚拟服务帐号 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- Chapter 1 Securing Your Server and Network(3):使用托管服务帐号
原文:Chapter 1 Securing Your Server and Network(3):使用托管服务帐号 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- Chapter 1 Securing Your Server and Network(1):选择SQL Server运行账号
原文:Chapter 1 Securing Your Server and Network(1):选择SQL Server运行账号 原文出处:http://blog.csdn.net/dba_huan ...
随机推荐
- bugumongo--ConnectToMongoDB
连接MongoDB 在能够对MongDB进行操作之前,需要使用BuguConnection连接到MongoDB数据库.代码如下: BuguConnection conn = BuguConnectio ...
- Java之iterator迭代器和iterable接口
java.lang.Iterable java.util.Iterator Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调用iterato ...
- bzoj3211,bzoj3038
线段树的裸题: 但是操作很奇怪,开方是不能lazy tag的 看来只能暴力修改了 但注意,开放开到1的时候就不用开,立一个flag就可以了 这可以大大的优化: 其实我是来复习线段树的 ..] of i ...
- TCP编程(七)
此为网络编程的一个系列,后续会把内容补上...
- 【Java】【编译】javac编译源代码时,若源文件使用了别的java源代码的函数,javac会自动关联。
* 算法第四版自己的alg4.jar似乎有些过时. * 可以引用别的源码文件里的函数
- EF框架step by step(8)—Code First DataAnnotations(2)
上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...
- Oracle ORA-00119和ORA-00132的解决方案
今天在启动服务器上的ORACLE时遇到如下错误: SQL> startup; ORA-00119: invalid specification for system parameter LOCA ...
- Python日期时间函数处理
所有日期.时间的 api 都在datetime模块内. 1 日期的格式化输出 datetime => string import datetime now = datetime.datetime ...
- STL sort()函数
C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数,不同的函数,实现的算法又不尽相同 ...
- Ofbiz初探
转:http://xmmartin.blog.51cto.com/2310947/771236 主导建设一个电子商务系统希望从Ofbiz了解中获得一些借鉴1.下载ofbiz,目前的版本是10.04,下 ...