WEB开发网
开发学院数据库MSSQL Server SQL Server 2008的透明数据加密 阅读

SQL Server 2008的透明数据加密

 2008-08-09 09:55:09 来源:WEB开发网   
核心提示: 下图显示了SQL Server怎样使用TDE加密一个数据库:透明数据加密使用一个数据加密密钥(DEK)用于加密数据库,它存储在数据库启动记录中,SQL Server 2008的透明数据加密(2),DEK由一个存储在主数据库中的证书来保护,可选的,TDE的执行相对简单,下面是一个示例脚本,D

下图显示了SQL Server怎样使用TDE加密一个数据库:

SQL Server 2008的透明数据加密

透明数据加密使用一个数据加密密钥(DEK)用于加密数据库,它存储在数据库启动记录中。DEK由一个存储在主数据库中的证书来保护。可选的,DEK可以由一个放置在硬件安全模块(HSM)中的非对称密钥以及外部密钥管理(EKM)的支持来保护。证书的私钥由对称密钥的数据库主密钥来加密,它通常由一个强密码来保护。注意,尽管这个证书可以由一个密码来保护,但是TDE要求这个证书由数据库主密钥来保护。数据库主密钥由服务主密钥来保护,而服务主密钥由数据保护API来保护。

TDE的执行

如同上面所提到的,TDE的执行相对简单。下面是一个示例脚本,它使得在一个叫做TestDatabase的数据库上激活了TDE。 

-- If the master key is not available, create it.
USE master;
GO
IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name LIKE '%MS_DatabaseMasterKey%')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa$$w0rd4545';
END
GO
-- Create the certificate in the master database.
USE master;
GO
-- Since ENCRYPTION BY PASSWORD is not mentioned, the private key of the certificate
-- will be encrypted by database master key created above.
IF NOT EXISTS (SELECT * FROM sys.certificates WHERE name LIKE '%DEKCertificate%')
BEGIN
    CREATE CERTIFICATE DEKCertificate WITH SUBJECT = 'DEK Certificate'
END
GO
-- Create Database Encryption Key (DEK) in the user database
USE TestDatabase
GO
IF NOT EXISTS (SELECT * FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestDatabase'))
BEGIN   
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_128
    ENCRYPTION BY SERVER CERTIFICATE DEKCertificate
END
GO
-- Check whether the key is created
SELECT DB_NAME(database_id) AS DatabaseName, * FROM sys.dm_database_encryption_keys
-- This should return one row (or more if DEKs have been generated in other databases)
-- with the encryption_state of 1 (1 = unencrypted).
-- Set the DEK on in the TestDatabase.
ALTER DATABASE TestDatabase
SET ENCRYPTION ON
GO
-- Check whether the encryption_state is changed to 3. It should be.
SELECT DB_NAME(database_id) AS DatabaseName, * FROM sys.dm_database_encryption_keys

上一页  1 2 3 4 5 6  下一页

Tags:SQL Server 透明

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接