Navicat Premium是一個可連接多種數據庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數據庫,讓管理不同類型的數據庫更加的方便。
在現在的信息時代,加密敏感數據是十分有意義的。其實問題也不在於加密,而在於採用哪種方法來加密。以下是三種主要廣泛使用的數據庫加密方法:
應用程序編程接口(API) - 應用程序級別
插件 - 數據庫級別
透明數據加密 - 磁盤/操作系統級別
我們越想了解一個應用程序,就需要更改更多的源代碼。相反,我們越想了解一個操作系統,開發人員可以付出更少的努力。磁盤加密是最安全的,因爲即使訪問物理數據庫服務器,***也無法讀取數據。
Microsoft的透明數據加密(TDE)在SQL Server 2008,Azure SQL數據庫和Azure SQL數據倉庫數據文件中實現,通過在數據寫入磁盤時加密數據庫來實現此目的。同樣,從磁盤讀取時,數據未加密。所以,只有在內存中時,數據才處於未加密狀態。
默認情況下,SQL Server根本不加密數據,更不用說加密磁盤了。激活磁盤加密需要幾個步驟。在本篇文章中,我們將回顧如何在SQL Server中打開TDS。
1.創建主密鑰
USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD='Use a Strong Password For the Database Master Key' GO
2.創建或獲取受主密鑰保護的證書
USE master; GO CREATE CERTIFICATE My_TDE_Certificate WITH SUBJECT='Certificate for TDE'; GO
3.創建數據庫加密密鑰並通過證書進行保護
USE MyDatabase GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate;
4.將數據庫設置爲使用加密
ALTER DATABASE MyDatabase SET ENCRYPTION ON; GO
備份證書
雖然使用TDE加密數據庫不需要此步驟,但是如果主數據庫損壞,則可以從數據庫備份中恢復加密數據,這一點非常重要。如果要將加密數據庫移動到另一臺服務器,還應備份證書。這是完成備份的代碼:
USE master; GO BACKUP CERTIFICATE TDE_CERT_For_MyData TO FILE = 'C:\temp\TDE_Cert_For_MyData.cer' WITH PRIVATE KEY (file='C:\temp\TDE_CertKey.pvk', ENCRYPTION BY PASSWORD='Use a Strong Password for Backup Here');
確保將備份密碼存儲在安全的地方。如果必須重建承載加密數據庫的服務器實例或需要將數據庫移動到另一臺服務器,則需要此密碼才能還原證書。
數據庫備份
使用TDE加密數據庫的好處之一是數據庫備份也將被加密,從而增強數據安全性。從SQL Server 2016開始,你還可以對啓用TDE的數據庫備份應用壓縮。壓縮數據庫備份非常重要,因爲它可以通過生成小於數據庫的備份文件來節省磁盤空間。此外,它還縮短了恢復數據庫所需的時間。
以下是如何將壓縮應用於啓用TDE的數據庫備份:
BACKUP DATABASE [MyDatabase] TO DISK = N'E:\backup\MyDatabase_TDE_Compressed.bak' WITH NOFORMAT, NOINIT, NAME = N'MyDatabase_TDE-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 GO