Azure SQL Database 透明數據加密(預覽版)藉由執行資料庫、相關聯的備份和待用事務歷史記錄檔的即時加密和解密,而不需要變更應用程式,協助防範惡意活動的威脅。
TDE 會使用稱為資料庫加密金鑰的對稱金鑰來加密整個資料庫的儲存體。 在 SQL Database 中,資料庫加密金鑰受到內建伺服器證書的保護。 每個 SQL Database 伺服器的內建伺服器證書都是唯一的。 如果資料庫處於 GeoDR 關聯性中,則會受到每部伺服器上的不同密鑰保護。 如果2個資料庫連線到相同的伺服器,它們會共用相同的內建憑證。 Microsoft至少每 90 天自動輪替這些憑證。 如需 TDE 的一般描述,請參閱透明數據加密(TDE)。
Azure SQL Database 不支援 Azure Key Vault 與 TDE 整合。 在 Azure 虛擬機上執行的 SQL Server 可以使用 Key Vault 中的非對稱密鑰。 如需詳細資訊,請參閱 範例 A:使用 Key Vault 中的非對稱密鑰進行透明數據加密。
| 適用於:SQL Database V12(在某些區域中為預覽版)。 |
這很重要
這是一個目前的預覽功能。 我承認並同意,在我的資料庫中實作 SQL Database 透明數據加密,受限於我的許可協定中的預覽條款(例如 Enterprise 合約、Microsoft Azure 合約或Microsoft在線訂用帳戶合約),以及適用於 Microsoft azure 預覽版的任何適用補充使用條款。
即使在 SQL Database 版本系列 V12 宣告為正式運作狀態的地理區域部分,TDE 狀態的預覽仍然適用。 除非Microsoft宣佈 TDE 從預覽升級至 GA,否則 TDE for SQL Database 不適用於生產資料庫。 如需 SQL Database V12 的詳細資訊,請參閱 Azure SQL Database 的新功能。
權限
若要註冊預覽版,並透過 Azure 入口網站、使用 REST API 或使用 PowerShell 設定 TDE,您必須以 Azure 擁有者、參與者或 SQL 安全性管理員身分連線。
若要使用 Transact-SQL 設定 TDE,需要下列各項:
您必須已註冊 TDE 預覽版。
若要建立資料庫加密密鑰,您必須是 SQL Database 系統管理員,或者您必須是 master 資料庫中 dbmanager 角色的成員,而且具有資料庫的 CONTROL 許可權。
若要使用 SET 選項執行 ALTER DATABASE 語句,只需要 dbmanager 角色的成員資格。
註冊加入 TDE 預覽並在資料庫上啟用 TDE
請造訪 Azure 入口網站, https://portal.azure.com 並使用您的 Azure 系統管理員或參與者帳戶登入。
在左側橫幅上,按兩下 [ 流覽],然後按兩下 [ SQL 資料庫]。
在左窗格中選取 [SQL 資料庫 ] 后,按下您的用戶資料庫。
在資料庫窗格中,按一下所有設定。
在 [ 設定] 刀鋒視窗中,按兩下 [ 透明數據加密 (預覽] 部分,以開啟 [透明數據加密預覽 ] 刀鋒視窗。 如果您尚未註冊 TDE 預覽版,數據加密設定將會停用,直到您完成註冊為止。
按一下預覽條款。
閱讀預覽條款,如果您同意條款,請選取 [透明數據加密][預覽條款 ] 複選框,然後按下頁面底部附近的 [確定 ]。 返回 [數據加密][預覽] 窗格,此時應該啟用 [數據加密] 按鈕。
在 [ 數據加密預覽] 刀鋒視窗中,將 [ 數據加密 ] 按鈕移至 [開啟],然後按兩下 [ 儲存 ] (頁面頂端) 以套用設定。 加密狀態會大致瞭解透明數據加密的進度。
您也可以利用 SQL Server Management Studio 等查詢工具以資料庫使用者身分監視加密進度,前提是您擁有 VIEW DATABASE STATE 權限。
encryption_state查詢sys.dm_database_encryption_keys檢視的數據行。
使用 Transact-SQL 在 SQL Database 上啟用 TDE
下列步驟假設您已註冊預覽版。
使用系統管理員或 master 資料庫中 dbmanager 角色成員的登入連接到資料庫。
執行下列語句來建立資料庫加密金鑰並加密資料庫。
-- Create the database encryption key that will be used for TDE. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE ##MS_TdeCertificate##; -- Enable encryption ALTER DATABASE [AdventureWorks] SET ENCRYPTION ON; GO若要監視 SQL Database 上的加密進度,具有 VIEW DATABASE STATE 許可權的資料庫使用者可以查詢
encryption_statesys.dm_database_encryption_keys檢視的數據行。
使用 PowerShell 在 SQL Database 上啟用 TDE
使用 Azure PowerShell,您可以執行下列命令來開啟/關閉 TDE。 您必須先將帳戶連線到 PS 視窗,再執行 命令。 下列步驟假設您已註冊預覽版。 如需 PowerShell 的其他資訊,請參閱 如何安裝和設定 Azure PowerShell。
若要啟用 TDE,請傳回 TDE 狀態,並檢視加密活動。
Switch-AzureMode -Name AzureResourceManager Set-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Enabled" Get-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" Get-AzureSqlDatabaseTransparentDataEncryptionActivity -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"若要停用 TDE:
Set-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Disabled" Switch-AzureMode -Name AzureServiceManagement
解密 SQL Database 上的 TDE 受保護資料庫
使用 Azure 平台停用 TDE
請造訪 Azure 入口網站, https://portal.azure.com 並使用您的 Azure 系統管理員或參與者帳戶登入。
在左側橫幅上,按兩下 [ 流覽],然後按兩下 [ SQL 資料庫]。
在左窗格中選取 [SQL 資料庫 ] 后,按下您的用戶資料庫。
在資料庫分頁中,按一下 所有設定。
在 [ 設定] 刀鋒視窗中,按兩下 [ 透明數據加密 (預覽] 部分,以開啟 [透明數據加密預覽 ] 刀鋒視窗。
在 [ 透明數據加密預覽] 刀鋒視窗中,將 [ 數據加密 ] 按鈕移至 [ 關閉],然後按兩下 [ 儲存 ] (頁面頂端) 以套用設定。 加密狀態會大致瞭解透明數據解密的進度。
您也可以透過連接至 SQL Database,使用 Management Studio 等查詢工具,來監視解密進度,並以具有 VIEW DATABASE STATE 許可權的資料庫使用者身份。 查詢sys.dm_database_encryption_keys檢視的
encryption_state欄位。
若要停用 TDE,可使用 Transact-SQL
使用系統管理員或 master 資料庫中 dbmanager 角色成員的登入連接到資料庫。
執行下列語句來解密資料庫。
-- Enable encryption ALTER DATABASE [AdventureWorks] SET ENCRYPTION OFF; GO若要監視 SQL Database 上的加密進度,具有 VIEW DATABASE STATE 許可權的資料庫使用者可以查詢
encryption_statesys.dm_database_encryption_keys檢視的數據行。
在 SQL Database 上操作受 TDE 保護的資料庫
您不需要解密資料庫以進行 Azure 內的作業。 目標資料庫會透明地自動繼承來源資料庫或主要資料庫的 TDE 設定。 這包括涉及下列作業:
異地複原
Self-Service 時間點還原
還原已刪除的資料庫
活躍的地理複寫
建立資料庫複本
使用 .Bacpac 檔案移動受 TDE 保護的資料庫。
使用 Azure SQL Database 入口網站或 SQL Server 匯入和匯出精靈中的導出受 TDE 保護的資料庫時,不會加密資料庫的內容。 內容會儲存在未加密的 .bacpac 檔案中。 請務必適當地保護 .bacpac 檔案,並在新資料庫的匯入完成後啟用 TDE。
相關 SQL Server 主題
另請參閱
透明數據加密(TDE)CREATE CREDENTIAL (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL)ALTER DATABASE (Transact-SQL)ALTER DATABASE SET 選項(Transact-SQL)