介绍
SQL Server 2005一个令人激动的特性是内置了加密的功能。在这个新版的SQL Server中,开发团队直接在T-SQL中加入了加密工具、证书创建和密钥管理的功能。对于因为法律要求或商业需求而需要加密表中的数据的人来说,这是一个好礼物。对于犹豫是否用加密来保证数据安全的人来说,做决定也更容易了。这篇文章介绍新的加密功能是怎么工作,怎么使用。
TSQL现在支持使用对称密钥和非对称密钥,证书和密码。本文介绍如何创建、管理和使用对称密钥和证书。
根据涉及的内容,我决定把本文分为三节:
第一部分:服务主密钥和数据库主密钥
第二部分:证书
第三部分:对称密钥
1. 服务主密钥和数据库主密钥
图:SQL Server 2005加密层次结构
1.1 服务主密钥
当第一次需要使用服务主密钥对链接服务器密码、凭据或数据库主密钥进行加密时,便会自动生成服务主密钥。服务主密钥为 SQL Server 加密层次结构的根。服务主密钥直接或间接地保护树中的所有其他密钥和机密内容。使用本地计算机密钥和 Windows 数据保护 API 对服务主密钥进行加密。该 API 使用从 SQL Server 服务帐户的 Windows 凭据中派生出来的密钥。
因为服务主密钥是自动生成且由系统管理的,它只需要很少的管理。服务主密钥可以通过BACKUP SERVICE MASTER KEY语句来备份,格式为:
BACKUP SERVICE MASTER KEY TO FILE = 'path_to_file' ENCRYPTION BY PASSWORD = 'password'
'path_to_file' 指定要将服务主密钥导出到的文件的完整路径(包括文件名)。此路径可以是本地路径,也可以是网络位置的 UNC 路径。