「透明資料加密」(tde) 可對資料和日誌檔案執行實時 i/o 加密和解密。這種加密使用資料庫加密金鑰 (dek),該金鑰儲存在資料庫引導記錄中以供恢復時使用。資料庫檔案的加密在頁級執行。已加密資料庫中的頁在寫入磁碟之前會進行加密,在讀入記憶體時會進行解密。
使用tde加密操作步驟:
建立主金鑰
建立或獲取由主金鑰保護的證書
建立資料庫加密金鑰並通過此證書保護該金鑰
將資料庫設定為使用加密
使用tde加密
use master
--建立主金鑰**********************
create master key encryption
by password = 'b19ace32-ab68-4589-81ae-010e9092fc6b'
go --建立證書,用於透明資料加密**********************
create certificate tde_server_certificate
with subject = 'server-level cert for tde'
go use test
go --第一步:現在開始tde加密**********************
create database encryption key--建立資料庫加密金鑰
with algorithm = triple_des_3key--加密演算法
encryption by server certificate tde_server_certificate--使用伺服器級證書加密
go --第二步:備份證書
use master
backup certificate tde_server_certificate --證書名稱
to file = n'd:\tde_server_certificate.cer' --證書備份檔案路徑
with private key (
file = n'd:\tde_server_certificate_saleskey.pvk' ,
encryption by password = n'b19ace32-ab68-4589-81ae-010e9092fc6b' ); --金鑰
go --第二步:啟用資料庫加密**********************
alter database test
set encryption on
go --檢視資料庫是否加密
select is_encrypted
from sys.databases
where name = 'test'
在另外一台伺服器上附加加密後的test庫
建立主金鑰
還原證書
附加資料庫
-- 建立資料庫主金鑰
create master key encryption
by password = 'b19ace32-ab68-4589-81ae-010e9092fc6b' --加密時所用的金鑰
go -- 還原證書
create certificate tde_server_certificate --證書名稱
from file = n'd:\tde_server_certificate.cer' --證書備份檔案路徑
with private key
file = n'd:\tde_server_certificate_saleskey.pvk' ,
decryption by password = n'b19ace32-ab68-4589-81ae-010e9092fc6b' --金鑰
go-- 附加資料庫(成功)
create database [test] on
( filename = n'c:\database\test.mdf' ),
( filename = n'c:\database\test_log.ldf' )
for attach ;
go注意:當還沒有正確的還原證書時,附加資料庫將會提示失敗資訊
在另外一台伺服器上還原test庫的備份檔案
操作與附加資料庫相同
建立主金鑰
還原證書
附加資料庫
-- 建立資料庫主金鑰
create master key encryption
by password = 'b19ace32-ab68-4589-81ae-010e9092fc6b' --加密時所用的金鑰
go -- 還原證書
create certificate tde_server_certificate --證書名稱
from file = n'd:\tde_server_certificate.cer' --證書備份檔案路徑
with private key
file = n'd:\tde_server_certificate_saleskey.pvk' ,
decryption by password = n'b19ace32-ab68-4589-81ae-010e9092fc6b' --金鑰
go-- 還原資料庫
restore database [temp]
from disk = n'c:\software\test.bak'
with file = 1,
move n'temp' to n'c:\database\test.mdf',
move n'temp_log' to n'c:\database\test_log.ldf',
nounload, stats = 10
其他相關sql
1、修改及檢視加密演算法
use test
go --修改加密演算法
alter database encryption key
regenerate with algorithm = aes_128 --加密演算法
go --檢視加密演算法
select db_name(database_id) databasenm,
case encryption_state
when 0 then 'no encryption'
when 1 then 'unencrypted'
when 2 then 'encryption in progress'
when 3 then 'encrypted'
when 4 then 'key change in progress'
when 5 then 'decryption in progress'
end encryption_state,
key_algorithm,
key_length
from sys.dm_database_encryption_keys
2、修改證書
use master
go --建立新證書
create certificate tde_server_certificate_v2
with subject = 'server-level cert for tde v2'
go --用新證書修改dek
use test
go alter database encryption key
encryption by server certificate tde_server_certificate_v2
3、刪除tde加密
--移除資料庫tde加密
alter database test
set encryption off
go
--移除tde後,可以刪除dek
use test
go drop database encryption key
go --刪除加密證書
drop certificate tde_server_certificate;
go--刪除主金鑰
drop master key;
go其他注意資訊
啟用 tde 時,應該立即備份證書和與證書相關聯的私鑰。如果證書變為不可用,或者如果必須在另一台伺服器上還原或附加資料庫,則必須同時具有證書和私鑰的備份,否則將無法開啟該資料庫。即使不再對資料庫啟用tde,也應該保留加密證書。即使資料庫未加密,事務日誌的某些部分仍可能保持受到保護,但在執行資料庫的完整備份前,對於某些操作可能需要證書。超過過期日期的證書仍可以用於通過 tde 加密和解密資料。
SQL Server 2008 透明資料加密入門
問題 在檢討 sql server 2008 中的新功能,時,我們注意到透明資料加密。這聽起來很有趣。您可以為我們提供解釋和執行它的詳細資訊嗎?解決方案 時延估計是 sql server 2008 中的新功能,它提供了實時加密的資料和日誌檔案。資料加密之前寫到磁碟 資料進行解密時從磁碟中讀取。時延估...
資料加密 TDE透明資料加密原理
首先需要確定你需要加密的列,oracle 10g資料庫將為包含加密列的表建立乙個私密的安全加密金鑰 表秘鑰 然後採用你指定的加密演算法 aes或3des 加密指定列的明文資料。此時,保護表的加密金鑰 表金鑰 就非常重要了。oracle 10g通過乙個master金鑰來對錶金鑰進行加密。master金...
什麼是透明資料加密 TDE
tde是sql server 2008推出的乙個新特性 透明資料加密 transparent data encryption 簡稱tde,是sql server 2008推出的乙個新特性,用來對整個資料庫提供保護。資料庫開啟tde加密後,對於連線到所選資料庫的應用程式來說是完全透明的,它不需要對現有...