数据库管理:SQL Server 2008安全性探讨

Ruby 发表于:12年09月06日 11:18 [转载] DOIT.com.cn

  • 分享:
[导读]今天我们将谈到SQL Server 2008安全性,包括身份验证模式等等。供大家参考,学习。

加密数据

并不是每一种数据类型都可以使用EncryptByKey函数加密。有效的数据类型是nvarchar、char、wchar、varchar和 nchar。表或视图中常备查询的列不应加密,因为解密大量会被一再查询的数据的过程通常会得不偿失。加密数据之前,必须打开将执行加密过程的密钥。数据通常手对称密钥保护,而对称密钥又受到非对称密钥对保护。如果对称密钥手密码保护,那么对对称密钥和密码有ALTER 权限的用户都可以打开和关闭对称密钥。如果对称密钥由一个非对称密钥或证书保护,用户还需要拥有对非对称密钥或证书上的CONTROL权限

  1. ALTER TABLE Sales.CreditCard ADD EncryptedCardNumber varbinary(128); GO 
  2.  
  3. OPEN SYMMETRIC KEY SalesKey1 DECRYPTION BY CERTIFICATE SalesCert WITH PASSWORD='P@ssw0rd' 
  4.  
  5. UPDATE Sales.CreditCard SET EncryptedCardNumber=EncryptByKey(Key_GUID('SalesKey1'),CardNumber); GO  CLSE SYMMETRIC KEY SalesKey1; GO 
  6.  
  7. ALTER TABLE Sales.CreditCard ADD DecryptedCardNumber NVARCHAR(25); GO 
  8.  
  9. OPEN SYMMETRIC KEY SalesKey1 DECRYPTION BY CERTIFICATE SalesCert WITH PASSWORD='P@ssw0rd'; GO 
  10.  
  11. UPDATE Sales.CreditCard SET DecryptedCardNumber=DecryptByKey(EncryptedCardNumber); GO 
  12.  
  13. CLOSE SYMMETRIC KEY SalesKey1; GO 
  14.  
  15. Select TOP(10) CreditCardID, CardNumber AS Original, EncryptedCardNumber AS Encrypted, DecryptedCardnumber AS Decrypted FROM Sales.CreditCard; GO 

不过,可以在SELECT语句中至此那个DecryptByKey函数来查看为加密的数据

  1. OPEN SYMMETRIC KEY SalesKey1 DECRYPTION BY CERTIFICATE SalesCert WITH PASSWORD='P@ssw0rd'; GO 
  2.  
  3. SELECT CreditCardID, CardNumber, EncryptedCardNumber AS 'Encrypted Card Number'CONVERT(nvarchar, DecryptByKey(EncryptedCardNumber)) 
  4. AS 'Decrypted Card Number' FROM Sales.CreditCard; GO 
  5.  
  6. CLOSE SYMMETRIC KEY SalesKey1; 

透明数据加密

SQL Server 2008的另一项新工能是透明数据加密(TDE,Transparent Data Encryption)。TDE被设计为针对启用了TDE的数据库或事务日志文件,使用数据库加密密钥(DEK,Database Encryption Key)执行实时IO加密。TDE的好处是它保护处于休眠状态的所有数据。这意味着当前未读入内存的数据都是用DEK保护。不过,当查询运行时,从查询检索的数据将在被读入内存时解密。与使用对称和非对称密钥解密单个表或列中的数据不同,在读或写受TDE保护的数据库中的表时,不必调用解密函数。

设置TDE比其他加密方法要复杂些,因为在启用它之前有一些条件必须满足:首先,master数据库中必须有一个数据库主密钥;其次,必须在 master数据库中创建或安装一个可用于加密DEK的证书,或者可以使用EKM提供程序的非对称密钥;然后,需要在将加密的数据库中创建DEK,最后,在数据库中启用加密。

  1. USE master CREATE MASTER KEY ENCRYPTION BY PASSWORD='MyStrongP@ssw0rd'; GO 
  2. CREATE CERTIFICATE AughtEightTDE WITH SUBJECT='TDE Certificate for the AUGHTEIGHT Server'; GO 
  3. USE AdventureWorks2008 CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM=TRIPLE_DES_3KEY ENCRYPTION BY SERVER CERTIFICATE AughtEightTDE; GO 
  4. ALTER DATABASE AdventureWorks2008 SET ENCRYPTION ON; GO
[责任编辑:韩蕊]
Ruby
SAP分享了多年来对企业运营变革的洞察,以及SAP Business Suite powered by HANA如何推动企业在对业务影响最小的情况下向实时企业转型,从而帮助企业实现更睿智的业务创新、更快速的业务流程和更简化的业务交互。发布会现场,SAP公司宣布,中国最大的瓶装水生产商——农夫山泉成为基于 SAP HANA 的SAP Business Suite在中国的首家客户。
官方微信
weixin
精彩专题更多
存储风云榜”是由DOIT传媒主办的年度大型活动。回顾2014年,存储作为IT系统架构中最基础的元素,已经成为了推动信息产业发展的核心动力,存储产业的发展迈向成熟,数据经济的概念顺势而为的提出。
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
联想携ThinkServer+System+七大行业解决方案惊艳第十六届高交会
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技术有限公司 版权所有.