详述SQL Server 2005对称密钥加密技术

http://tech.ddvip.com   2007年10月30日    社区交流

内容摘要:SQL Server 2005一个令人激动的特性是内置了加密的功能。在这个新版的SQL Server中,开发团队直接在T-SQL中加入了加密工具、证书创建和密钥管理的功能。对于因为法律要求或商业需求而需要加密表中的数据的人来说,这是一个好礼物。对于犹豫是否用加密来保证数据安全的人来说,做决定也更容易了。这篇文章介绍新的加密功能是怎么工作,怎么使用。

  'password' 用于对备份文件中的服务主密钥进行加密的密码。此密码应通过复杂性检查。

  应当对服务主密钥进行备份,并将其存储在另外一个单独的安全位置。创建该备份应该是首先在服务器中执行的管理操作之一。

  如果需要从备份文件中恢复服务主密钥,使用RESTORE SERVICE MASTER KEY语句。

RESTORE SERVICE MASTER KEY FROM FILE = 'path_to_file'
DECRYPTION BY PASSWORD = 'password' [FORCE]

  'path_to_file' 指定存储服务主密钥的完整路径(包括文件名)。path_to_file 可以是本地路径,也可以是网络位置的 UNC 路径。

  PASSWORD = 'password' 指定对从文件中导入的服务主密钥进行解密时所需的密码。

  FORCE 即使存在数据丢失的风险,也要强制替换服务主密钥。

  注:如果你在使用RESTORE SERVICE MASTER KEY时不得不使用FORCE选项,你可能会遇到部分或全部加密数据丢失的情况。

  如果你的服务主密钥泄露了,或者你想更改SQL Server服务帐户,你可以通过ALTERSERVICE MASTER KEY语句重新生成或者恢复服务主密钥。它的用法请参考联机丛书。

  因为服务主密钥是SQL Server自动生成的,所以,它没有对应的CREATE和DROP语句。

  1.2 数据库主密钥

  正如每个SQL Server有一个服务主密钥,每个数据库有自己的数据库主密钥。数据库主密钥通过CREATE MASTER KEY语句生成:

  CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'

  这个语句创建数据库主密钥,使用指定的密码加密它,并保存在数据库中。同时,数据库主密钥也被使用服务主密钥加密之后保存在master数据库中,这就是所谓的“自动密钥管理”。这个特性我们待会再讲。

作者:Michael Coles    责编:豆豆技术应用

正在加载评论...