SQL Server 2008中的代码安全(八) 透明数据加密(TDE)
来源:互联网 发布:电磁场有限元分析软件 编辑:程序博客网 时间:2024/06/10 13:58
SQL Server 2008引入透明数据加密(Transparent Data Encryption),即TDE
它允许你完全无需修改应用程序代码而对整个数据库加密。
当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。
如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。
小结:
1、本文主要介绍透明数据加密(TDE)的使用。
它允许你完全无需修改应用程序代码而对整个数据库加密。
当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。
如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。
这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,我们至少可以将一些初级的恶意窥视拒之见外。
USE Master GO --删除旧主密钥--Drop MASTER KEY--GO --创建主密钥CREATE MASTER KEY ENCRYPTION BY PASSWORD ='B19ACE32-AB68-4589-81AE-010E9092FC6B' GO --创建证书,用于透明数据加密CREATE CERTIFICATE TDE_Server_Certificate WITH SUBJECT = 'Server-level cert for TDE' GO --打开aa数据库USE [aa] GO --第一步:现在开始透明加密CREATE DATABASE ENCRYPTION KEY--创建数据库加密密钥 WITH ALGORITHM = TRIPLE_DES_3KEY--加密方式 ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate--使用服务器级证书加密 GO /* 警告: 用于对数据库加密密钥进行加密的证书尚未备份。应当立即备份该证书以及与该证书关联的私钥。如果该证书不可用,或者您必须在另一台服务器上还原或附加数据库,则必须对该证书和私钥均进行备份,否则将无法打开该数据库。*/ --第二步:打开加密开关ALTER DATABASE [aa] SET ENCRYPTION ON GO --查看数据库是否加密 SELECT is_encrypted FROM sys.databasesWHERE name = 'aa' --注意:一旦在数据库应用了加密,应该立刻备份服务器级证书! --没有加密dek的证书,该数据库将无法打开,附加到别的服务器也无法使用,数据库文件亦不会被Hack。--如果一个DBA想要合法地将数据库从一个SQL Server实例移动到另一个SQL Server实例,--那么她应该首先备份服务器级证书,然后在新的SQL Server实例中创建证书。--此时可以合法地备份、还原数据库或附加数据及日志文件。 --示例二、管理和移除透明加密(TDE) USE [aa] GO --修改加密算法 ALTER DATABASE ENCRYPTION KEY REGENERATE WITH ALGORITHM = AES_128 Go SELECT DB_NAME(database_id) databasenm, CASE encryption_state WHEN 0 THEN 'No encryption' WHEN 1 THEN 'Unencrypted' WHEN 2 THEN 'Encryption in progress' WHEN 3 THEN 'Encrypted' WHEN 4 THEN 'Key change in progress' WHEN 5 THEN 'Decryption in progress' END encryption_state, key_algorithm, key_lengthFROM sys.dm_database_encryption_keys /* 对所有用户数据库的加密处理也包含对tempdb的处理 ,因为表连接,临时表都要用到tempdbdatabasenm encryption_state key_algorithm key_length tempdb Encrypted AES 256 DB_Encrypt_Demo Encrypted AES 128 */ --除了更改dek的算法,我们也可以更改用来加密数据库的服务器级证书(该证书应该定期更改) USE master GO CREATE CERTIFICATE TDE_Server_Certificate_V2 WITH SUBJECT = 'Server-level cert for TDE V2' GO USE [aa] GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate_V2--用新证书修改DEK --移除数据库透明加密 ALTER DATABASE [aa] SET ENCRYPTION OFF GO --移除TDE后,可以删除DEK USE [aa] GO DROP DATABASE ENCRYPTION KEY Go
小结:
1、本文主要介绍透明数据加密(TDE)的使用。
2、对DEK的修改同时影响到tempdb数据库的加密状态。
http://www.cnblogs.com/downmoon/archive/2011/03/17/1986383.html
阅读全文
0 0
- SQL Server 2008中的代码安全(八) 透明数据加密(TDE)
- SQL Server 2008中的代码安全(八):透明加密(TDE)
- [Oracle] 数据库安全之 - 透明数据加密技术(TDE)
- oracle透明数据加密技术(TDE)
- Oracle10G:透明数据加密技术(TDE)
- Oracle10G:透明数据加密技术(TDE)
- Oracle数据安全解决方案(1)——透明数据加密TDE
- 透明数据加密 (TDE)
- SQL Server 2008中的代码安全(七):证书加密
- 使用透明数据加密(TDE)来保护数据库
- Oracle数据安全解决方案——透明数据加密TDE
- Oracle数据安全解决方案-透明数据加密TDE
- 了解透明数据加密 (TDE)
- 什么是透明数据加密(TDE)?
- Oracle 透明数据加密TDE
- SQL Server 2008中的代码安全(一):存储过程加密与安全上下文
- SQL Server 2008中的代码安全(一):存储过程加密与安全上下文
- SQL Server 2008中的代码安全(三):通过PassPhrase加密
- 负载均衡SLB百问FAQ
- Swift/OC
- Oracle 总结
- CentOS 7 中使用NTP进行时间同步
- memach类型转换异常java.lang.ClassCastException: java.lang.Byte cannot be cast to com.organization.model.
- SQL Server 2008中的代码安全(八) 透明数据加密(TDE)
- JAVA-Interface关键字
- 著名软件错误案例
- nfs常见问题解决办法
- 序列定时重置时,存储过程中涉及到DDL语句,执行报错:无法执行作业1
- google官方android ndk demo解析(一)——audio echo
- 9月15日云栖精选夜读:BCG与阿里研究院等联合揭秘中国互联网经济:成功的关键是什么?
- [JAVA] Hibernate简述
- 侧滑菜单