次の方法で共有


DROP DATABASE ENCRYPTION KEY (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

透過的なデータベースの暗号化で使用されるデータベース暗号化キーを削除します。 透過的データベース暗号化について詳しくは、「透過的なデータ暗号化 (TDE)」をご覧ください。

重要

データベース暗号化キーを保護していた証明書のバックアップは、データベースで暗号化を無効にした後も保持しておく必要があります。 データベースが暗号化されなくなっても、トランザクション ログの一部はまだ保護されたままの場合があるため、データベースの完全バックアップが実行されるまでは、一部の操作で証明書が必要になることがあります。

Transact-SQL 構文表記規則

構文

DROP DATABASE ENCRYPTION KEY  

Note

この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。

解説

データベースが暗号化されている場合は、まず ALTER DATABASE ステートメントを使用してデータベースの暗号化を解除する必要があります。 暗号化の解除が完了するまで待機し、その後でデータベース暗号化キーを削除します。 ALTER DATABASE ステートメントについて詳しくは、「ALTER DATABASE SET オプション (Transact-SQL)」をご覧ください。 データベースの状態を表示するには、sys.dm_database_encryption_keys 動的管理ビューを使います。

アクセス許可

データベースに対する CONTROL 権限が必要です。

次の例では、データベースの暗号化を解除し、データベース暗号化キーを削除します。

ALTER DATABASE AdventureWorks2022  
SET ENCRYPTION OFF;  
GO  
/* Wait for decryption operation to complete, look for a   
value of  1 in the query below. */  
SELECT encryption_state  
FROM sys.dm_database_encryption_keys;  
GO  
USE AdventureWorks2022;  
GO  
DROP DATABASE ENCRYPTION KEY;  
GO  

例: Azure Synapse Analytics、Analytics Platform System (PDW)

次の例では、TDE の暗号化を解除し、データベース暗号化キーを削除します。

ALTER DATABASE AdventureWorksPDW2012  
    SET ENCRYPTION OFF;  
GO  
/* Wait for decryption operation to complete, look for a   
value of  1 in the query below. */  
WITH dek_encryption_state AS   
(  
    SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id, encryption_state  
    FROM sys.dm_pdw_nodes_database_encryption_keys AS dek  
        INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map  
           ON dek.database_id = node_db_map.database_id AND dek.pdw_node_id = node_db_map.pdw_node_id  
        LEFT JOIN sys.pdw_database_mappings AS db_map  
            ON node_db_map .physical_name = db_map.physical_name  
        INNER JOIN sys.dm_pdw_nodes AS nodes  
            ON nodes.pdw_node_id = dek.pdw_node_id  
    WHERE dek.encryptor_thumbprint <> 0x  
)  
SELECT TOP 1 encryption_state  
       FROM  dek_encryption_state  
       WHERE dek_encryption_state.database_id = DB_ID('AdventureWorksPDW2012 ')  
       ORDER BY (CASE encryption_state WHEN 3 THEN -1 ELSE encryption_state END) DESC;   
GO  
USE AdventureWorksPDW2012;  
GO  
DROP DATABASE ENCRYPTION KEY;  
GO  

参照

透過的なデータ暗号化 (TDE)
SQL Server の暗号化
SQL Server とデータベースの暗号化キー (データベース エンジン)
暗号化階層
ALTER DATABASE SET のオプション (Transact-SQL)
CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
sys.dm_database_encryption_keys (Transact-SQL)