iT邦幫忙

DAY 25
6

SQL Server 無敵手冊系列 第 25

SQL Server 無敵手冊第廿五篇-實作SQL Server的透明資料加密(TDE)

上一篇介紹了SQL Server的的透明資料加密(Transparent Data Encryption:TDE)的觀念,接下來這篇跟大家介紹如何利實作透明資料加密。
要在SQL Server實作透明資料加密,需要的步驟如下列所示:
1.建立主要金鑰
2.建立或取得受到主要金鑰保護的憑證
3.建立資料庫加密金鑰,並使用憑證保護它
4.設定資料庫使用加密
[建立主要金鑰]
要使用透明資料加密的第一步,就是要先建立主要金鑰,這裡指的主要金鑰是指DMK(Database Master Key),我們建立DMK的時候,會利用三重DES演算法和使用者提供的密碼來加密主要金鑰,主要金鑰是用來保護憑證私密金鑰和資料庫中非對稱金鑰的對稱金鑰。
請執行下列範例,用來產生主要金鑰:

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
GO

在上列範例中,您可以將<UseStrongPasswordHere>替換為您所要設定的密碼,如下列執行結果,就是將密碼設定為!kk667jj578。

[建立主要憑證]
建立了主要金鑰之後,我們接著要建立受到主要金鑰保護的憑證,請執行下列範例,用來產生憑證:

USE master;
GO
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
GO

如同前一個範例,您可以將'My DEK Certificate'替換為您所要設定的主題名稱,或是將憑證名稱MyServerCert置換,下列就是程式碼執行結果:

執行完成後,您可以在物件總管中,展開[master]資料庫下的[安全性],再展開[憑證],就可以看到剛剛我們Create的憑證,如下圖所示:

[建立資料庫加密金鑰並設定資料庫使用加密]
接下來我們就可以建立資料庫加密金鑰並設定資料庫使用加密,由於使步驟在SSMS可以在同一個畫面完成,所以雖然程式碼分為兩個部分,我們就集中在一步說明,此範例中,我們將對AdventureWorksDW進行透明資料加密,您可以透過與上列範例的相同方式使用程式碼來執行,或是透過SSMS的圖形畫面操作,範例程式碼如下:

USE AdventureWorksDW;
GO
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorksDW
SET ENCRYPTION ON
GO

此範例中使用AES 128的加密算法,並使用MyServerCert這個伺服器憑證加以保護,最後一段程式碼是設定將資料庫加密設為啟用。
對應到SSMS操作如下:
1.進入SSMS後,展開到AdventureWorksDW,在AdventureWorksDW上按下滑鼠右鍵,並在選單上選擇[工作]->[管理資料庫加密]

2.然後設定加密演算法,並選擇伺服器憑證後,勾選[將資料庫加密設為開啟],下圖就是SSMS上的設定與程式碼的對應說明。

這樣搭配上一篇,您已經現在您已經了解在SQL Server中如何做到透明資料加密(TDE),並且已經有了實作經驗。


上一篇
SQL Server 無敵手冊第廿四篇-淺談SQL Server的透明資料加密 (TDE)
下一篇
SQL Server 無敵手冊第廿六篇-管理SQL Server的透明資料加密(TDE)
系列文
SQL Server 無敵手冊30

1 則留言

0
funkent
iT邦高手 1 級 ‧ 2009-11-04 10:07:23

補上SQL Server 無敵手冊全系列的連結
SQL Server 無敵手冊

我要留言

立即登入留言