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 ...
随机推荐
- 基于Android Studio搭建hello world工程
基于Android Studio搭建hello world工程 版本:ANDROID STUDIO V0.4.6 This download includes: · Android St ...
- Innodb MVCC源码实现
1. 概述 MVCC: 即多版本一致性,在事务模型下,使用version控制数据版本,关系型数据库基本都实现了MVCC,以对表数据的读写互不阻塞,增大了并发量. Oracle和MySQL数据库都是使用 ...
- innodb master主线程
http://wenku.baidu.com/link?url=MhY9yhHTgeOlyooWDvaVfPkW3cuVSX_rIZv2QtCu7GLeEuqSfYh_M7Yvl1N4IY08a3ws ...
- DTD约束文件
在讲解DTD文件之前,我要说说一份合格的XML应该符合怎么样的规则? 就我总结一下几点,大家看看就好了: 1.一份XML有且仅有一个根元素. 2.XML是严格区分大小写的,<book>元素 ...
- 陈正冲老师讲c语言之声明和定义的区别
什么是定义?什么是声明?它们有何区别? 举个例子: A)int i; B)extern int i;(关于extern,后面解释) 哪个是定义?哪个是声明?或者都是定义或者都是声明?我所教过的学生几乎 ...
- date 获取昨天日期
使用date -d 选项: date +"%Y%m%d" -d "+n days" 今天的后n天日期 date +" ...
- 【转】Android中的颜色设置
原文网址:http://www.cnblogs.com/bluestorm/p/3644669.html 1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如: 1 2 3 publ ...
- html语意化标签
一.布局的理解误区 网络上流行管新型的布局方式叫“DIV+CSS”,其实是一个错误的理解,导致了很多人过度依赖 与滥用DIV标签, HTML提供了我们一共七八十个标签,其中常用的有三十个左右,DIV不 ...
- 用JDBC访问ORACLE数据库 关于commit 增快效率 大数据 等的整理
1.问:用JDBC访问ORACLE数据库,做DELETE操作,能用JAVA多线程实现吗? ORACLE服务器要怎么配?(以下答案来自网络,仅供参考) 答: Oracle有自己的锁机制.就算你开100条 ...
- java jvm学习笔记二(类装载器的体系结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 在了解java虚拟机的类装载器之前,有一个概念我们是必须先知道的,就是java的沙箱,什 ...