アンインストール
EKM プロバイダーのアンインストール
DuoKey SQL EKM プロバイダーを SQL Server から適切に削除する
アンインストールが必要になる場合
次のような場合に EKM プロバイダーのアンインストールが必要になることがあります。
トラブルシューティング
インストールまたは構成の問題を解決する
アップグレード
新しいバージョンのプロバイダーをインストールする
廃止
サーバーから SQL EKM を削除する
移行
別の暗号化ソリューションに移行する
暗号化されたデータベースがある場合、先に復号するかキー構成を維持しない限り、EKM プロバイダーを削除するとそれらのデータベースにアクセスできなくなります。先に復号するか、プロバイダー、資格情報、マスターキーをそのまま残してください。
前提条件
- すべての暗号化されたデータベースをバックアップする
- 現在の構成(資格情報、キーなど)を文書化する
- サーバーの管理者権限
- アクティブな暗号化データベースがないことを確認する(または再暗号化を計画する)
アンインストール前の手順
暗号化されたデータベースのインベントリ
まず、TDE で保護されているすべてのデータベースを特定します。
SELECT
d.name AS DatabaseName,
d.is_encrypted,
dek.encryption_state,
dek.encryptor_type
FROM sys.databases d
LEFT JOIN sys.dm_database_encryption_keys dek
ON d.database_id = dek.database_id
WHERE d.is_encrypted = 1;
GO構成の文書化
アンインストールする前に、現在のプロバイダー、キー、資格情報の詳細を記録します。
-- Document cryptographic providers
SELECT
name AS ProviderName,
guid,
is_enabled,
dll_path
FROM sys.cryptographic_providers;
GO
-- Document asymmetric keys and the provider they are bound to
USE master;
SELECT
ak.name AS KeyName,
ak.algorithm_desc,
ak.thumbprint,
cp.name AS ProviderName
FROM sys.asymmetric_keys ak
LEFT JOIN sys.cryptographic_providers cp
ON ak.cryptographic_provider_guid = cp.guid;
GO
-- Document credentials
SELECT
name AS CredentialName,
credential_identity
FROM sys.credentials
WHERE name LIKE '%Dke%' OR name LIKE '%EKM%';
GOデータベースのバックアップ
アンインストールを進める前に、必ずすべての暗号化されたデータベースをバックアップしてください。
BACKUP DATABASE <DatabaseName>
TO DISK = 'C:\Backups\<DatabaseName>_PreUninstall.bak'
WITH COMPRESSION, CHECKSUM;
GOSQL Server のクリーンアップ
SQL Server オブジェクトを次の順序で削除します。資格情報マッピング、次にログイン、次に資格情報、次に非対称キー、最後にプロバイダーです。キーまたは資格情報がまだ参照している間は、プロバイダーを削除できません。
いずれかのデータベースがまだ暗号化されている場合は、先に復号してください(アンインストール前に復号するを参照)。データベースが暗号化されている間にマスターキーまたはプロバイダーを削除すると、そのデータベースは復元不能になります。
資格情報マッピングを削除する
資格情報がマッピングされているすべてのログインから、その資格情報を削除します。
-- List logins with the EKM credential mapped
SELECT
l.name AS LoginName,
c.name AS CredentialName
FROM sys.server_principals l
INNER JOIN sys.credentials c
ON l.credential_id = c.credential_id
WHERE c.name LIKE '%Dke%';
GO
-- Drop the mappings
ALTER LOGIN [sa]
DROP CREDENTIAL DkeEkmCredential;
GO
ALTER LOGIN [TDE_Master_Login]
DROP CREDENTIAL DkeEkmCredential;
GOキーログインを削除する
DROP LOGIN TDE_Master_Login;
GO資格情報を削除する
DROP CREDENTIAL DkeEkmCredential;
GO資格情報の削除に失敗する場合は、手順 1 のすべてのログインマッピングが先に削除されていることを確認してください。
非対称キーを削除する
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GOこれは SQL Server 側のキーへの参照のみを削除します。キー自体は DuoKey 内に残り、後で OPEN_EXISTING で再度開くことができます。
暗号プロバイダーを削除する
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GO非対称キーまたは資格情報からまだ参照されている間は、暗号プロバイダーを削除できません。先に手順 1 から 4 を完了してください。
プロバイダーファイルの削除
SQL オブジェクトがなくなったら、ホストから配置したファイルを削除します。
SQL Server を停止する(必要な場合)
プロバイダーライブラリは SQL Server により読み込まれています。ファイルがロックされている場合は、削除する前にサービスを停止してください。
Stop-Service MSSQLSERVERプロバイダーライブラリを削除する
Remove-Item "C:\Program Files\DKE\EKM\dke_ekm_provider.dll" -Force
# Optionally remove the folder if now empty
Remove-Item "C:\Program Files\DKE\EKM" -Recurse -Force構成ファイルとランタイムファイルを削除する
config.toml、keystore.json、dke-ekm.log を保持する ProgramData フォルダーを削除します。
Remove-Item "C:\ProgramData\DKE\EKM" -Recurse -Forceデータベースを暗号化したまま保持しますか? keystore.json を削除しないでください。プロバイダーは、再起動後に TDE で保護されたデータベースを再度開くためにこれを必要とします。
SQL Server を再起動する
Start-Service MSSQLSERVERアンインストール後の検証
ファイル削除の確認
削除を確認するファイル
詳細設定用にオプションの HKLM\SOFTWARE\DKE\EKM キーが作成されていた場合は、それも削除できます。標準インストールではレジストリエントリは作成されません。
SQL Server の状態の確認
-- Should return no rows
SELECT name, guid, is_enabled
FROM sys.cryptographic_providers
WHERE name = 'DkeEkm';
GO暗号化されたデータベースの取り扱い
オプション 1: データベースを暗号化したまま保持する
再インストールまたは暗号化の維持を計画している場合:
バックアップを保持する
暗号化されたデータベースのバックアップを維持する
キーストアを保持する
キーを再度開けるよう config.toml と keystore.json を保持する
再インストールを計画する
準備ができたらプロバイダーを再配置してマスターキーを再度開く
オプション 2: アンインストール前に復号する
暗号化を完全に削除したい場合は、SQL オブジェクトを削除したりファイルを削除したりする前に、すべてのデータベースを復号してください。
-- Disable TDE
ALTER DATABASE <DatabaseName>
SET ENCRYPTION OFF;
GO
-- Monitor decryption progress
SELECT
DB_NAME(database_id) AS DatabaseName,
encryption_state,
percent_complete
FROM sys.dm_database_encryption_keys;
GO
-- Wait until encryption_state = 1 (Unencrypted)
-- Drop the Database Encryption Key
USE <DatabaseName>;
DROP DATABASE ENCRYPTION KEY;
GO
-- Verify decryption
SELECT
name,
is_encrypted
FROM sys.databases
WHERE name = '<DatabaseName>';
GOトラブルシューティング
緊急アンインストール
緊急アンインストールは、暗号化されたデータベースにアクセスできなくなる可能性があります。適切なバックアップがある重大な状況でのみ使用してください。
-- Force remove references, then the provider
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO
DROP CREDENTIAL DkeEkmCredential;
GO
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GOその後、上記の説明に従ってプロバイダーファイルを削除します。