SQL中数据的加密技巧.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL中数据的加密技巧.doc

数据用数字方式存储在服务器中并非万无一失。实践证明有太多的方法可以智取SQL Server认证保护,最简单的是通过使用没有口令的sa账号。尽管SQL Server远比它以前的版本安全,但攻击者还是有可能获得存储的数据。因此,数据加密成为更彻底的数据保护战略,即使攻击者得以存取数据,还不得不解密,因而对数据增加了一层保护。 SQL Server通过将数据加密作为数据库的内在特性解决了这个问题。它除了提供多层次的密钥和丰富的加密算法外,最大的好处是用户可以选择数据服务器管理密钥。SQL Server服务器支持的加密算法如下: ⑴ 对称式密钥加密(Symmetric Key Encryption): 对称式加密方式对加密和解密使用相同的密钥。通常,这种加密方式在应用中难以实施,因为用同一种安全方式共享密钥很难。但当数据储存在SQL Server中时,这种方式很理想,你可以让服务器管理它。SQL Server提供RC4、RC2、DES和AES系列加密算法。 ⑵ 非对称密钥加密(Asymmetric Key Encryption): 非对称密钥加密使用一组公共/私人密钥系统,加密时使用一种密钥,解密时使用另一种密钥。公共密钥可以广泛的共享和透露。当需要用加密方式向服务器外部传送数据时,这种加密方式更方便。SQL Server支持RSA加密算法的512位、1,024位和2,048位密钥强度。 ⑶ 数字证书(Certificate): 数字证书是一种非对称密钥加密,但是,一个组织可以使用证书并通过数字签名将一组公钥和私钥与其拥有者相关联。SQL Server支持“因特网工程工作组”(IETF) X.509 版本 3 (X.509v3) 规范。一个组织可以SQL Server 使用外部生成的证书,或者可以使用 SQL Server 生成证书。 (4) pwdencrypt,pwdcompare加密(SQL SERVER本身提供的加密函数) SQL Server 采用多级密钥来保护它内部的密钥和数据,如下图所示: 图1 SQL Server采用多级密钥保护它内部的密钥和数据 图中顶层的服务主密钥,安装SQL Server新实例时自动产生和安装,用户不能删除此密钥,但数据库管理员能对它进行基本的维护,如备份该密钥到一个加密文件,当其危及到安全时更新它,恢复它。 服务主密钥由DPAPI(Data Protection API)管理。DPAPI在Windows 2000 中引入,建立于Windows的Crypt32 API之上。SQL Server 管理与DPAPI的接口。服务主密钥本身是对称式加密,用来加密服务器中的数据库主密钥。 图中引出箭头的密钥或服务用于保护箭头所指的密钥。所以分服务主密钥(service master key)数据库主密钥(database master keys),而数据库主密钥又保护证书(certificates)和非对称密钥(asymmetric keys)。而最底层的对称性密钥(symmetric keys)被证书、非对称密钥或其他的对称性密钥保护。用户只需通过提供密码来保护这一系列的密钥。 加密实战 --示例一,使用证书加密数据. --准备工作, 创建测试数据库TestDB use master IF EXISTS (SELECT name FROM sys.databases WHERE name = NTestDB) drop database TestDB CREATE DATABASE [TestDB] ON PRIMARY ( NAME = NTestDB, FILENAME = NC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\TestDB.mdf , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = NTestDB_log, FILENAME = NC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\TestDB_log.ldf , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) go use TestDB --建立测试数据表 CREATE TABLE tb(ID int IDENTITY(1,1),data varbinary(8000)); GO --数据库主密钥 --1)必须先在该数据库上创建数据库主密钥才能使用 create master key encryption by

文档评论(0)

aiwendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档