示範版本:SQL Server 2012
如何移除「透明資料加密(Transparent Data Encryption,TDE)
(1) 如果資料庫經過加密,您必須先使用 ALTER DATABASE ... SET ENCRYPTION OFF 陳述式,先從資料庫移除加密。
(2) 等候解密完成,然後再使用 DROP DATABASE ENCRYPTION KEY 移除資料庫加密金鑰。
移除「透明資料加密(Transparent Data Encryption,TDE)
請參考以下的範例程式碼
-- 01_檢視關於資料庫加密狀態的資訊 /* sys.dm_database_encryption_keys 傳回關於資料庫加密狀態及其相關聯之資料庫加密金鑰的資訊。 -- 資料行名稱:encryption_state 指出資料庫已加密或未加密。 0 = 沒有資料庫加密金鑰存在,未加密 1 = 未加密 2 = 加密進行中 3 = 已加密 4 = 金鑰變更進行中 5 = 解密進行中 6 = 保護變更進行中 (正在變更用於加密資料庫加密金鑰的憑證或非對稱金鑰)。 資料行名稱:percent_complete 資料庫加密狀態變更的完成百分比。如果沒有狀態變更,這將會是 0。 */ USE master GO SELECT DB_NAME(database_id) N'資料庫',encryption_state N'加密狀態',percent_complete N'完成百分比', key_algorithm N'演算法', key_length N'金鑰長度', encryptor_type N'加密程式的類型', encryptor_thumbprint N'加密程式的指模',create_date N'建立加密金鑰的日期' FROM sys.dm_database_encryption_keys GO
-- 圖01_檢視關於資料庫加密狀態的資訊
-- 02_先設定此資料庫移除加密功能 /* 如果資料庫經過加密,您必須使用 ALTER DATABASE 陳述式,先從資料庫移除加密。 等候解密完成,然後再移除資料庫加密金鑰。 ALTER DATABASE SET 選項 ENCRYPTION {ON | OFF} 設定資料庫要加密 (ON) 或是不要加密 (OFF)。 在資料庫層級啟用加密時,所有的檔案群組都會加密。 任何新的檔案群組都會繼承加密的屬性。 如果資料庫內有任何檔案群組設定為 READ ONLY,則資料庫加密作業將會失敗。 */ ALTER DATABASE Northwind_TDE SET ENCRYPTION OFF GO -- 03_移除資料庫加密功能後,檢視關於資料庫加密狀態的資訊 USE master GO SELECT DB_NAME(database_id) N'資料庫',encryption_state N'加密狀態',percent_complete N'完成百分比', key_algorithm N'演算法', key_length N'金鑰長度', encryptor_type N'加密程式的類型', encryptor_thumbprint N'加密程式的指模',create_date N'建立加密金鑰的日期' FROM sys.dm_database_encryption_keys GO
-- 圖02_移除資料庫加密功能後,檢視關於資料庫加密狀態的資訊
雖然資料庫 Northwind_TDE 的加密狀態是:1 (未加密)。
但此資料庫仍未完成解密,必須要再使用 DROP DATABASE ENCRYPTION KEY 移除資料庫加密金鑰。
-- 04_卸除資料庫透明加密中所使用的資料庫加密金鑰 /* DROP DATABASE ENCRYPTION KEY 卸除資料庫透明加密中所使用的資料庫加密金鑰。 如果資料庫經過加密,您必須使用 ALTER DATABASE 陳述式,先從資料庫移除加密。 等候解密完成,然後再移除資料庫加密金鑰。 */ USE Northwind_TDE GO DROP DATABASE ENCRYPTION KEY; GO -- 05_卸除資料庫透明加密中所使用的資料庫加密金鑰後,檢視關於資料庫加密狀態的資訊 USE master GO SELECT DB_NAME(database_id) N'資料庫',encryption_state N'加密狀態',percent_complete N'完成百分比', key_algorithm N'演算法', key_length N'金鑰長度', encryptor_type N'加密程式的類型', encryptor_thumbprint N'加密程式的指模',create_date N'建立加密金鑰的日期' FROM sys.dm_database_encryption_keys GO
-- 圖03_卸除資料庫透明加密中所使用的資料庫加密金鑰後,檢視關於資料庫加密狀態的資訊
系統資料庫 tempdb 要等到下次重新啟動後,將自動移除資料庫透明加密功能。
參考資料
ALTER DATABASE SET 選項 (Transact-SQL)
http://technet.microsoft.com/zh-tw/library/bb522682.aspx
DROP DATABASE ENCRYPTION KEY (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/bb630256.aspx
新手學SQL Server 2008「透明資料加密(Transparent Data Encryption,TDE)」(1) : 技術文章
http://sharedderrick.blogspot.com/2008/10/1.html
新手學SQL Server 2008「透明資料加密(Transparent Data Encryption,TDE)」(2) : 技術文章
http://sharedderrick.blogspot.tw/2008/10/2.html
沒有留言:
張貼留言