Deinstallation
Den EKM-Provider deinstallieren
Entfernen Sie den DuoKey SQL EKM-Provider ordnungsgemäß von Ihrem SQL Server
Wann deinstallieren
In folgenden Szenarien müssen Sie möglicherweise den EKM-Provider deinstallieren:
Fehlerbehebung
Beheben von Installations- oder Konfigurationsproblemen
Upgrade
Installieren einer neueren Version des Providers
Außerbetriebnahme
Entfernen von SQL EKM vom Server
Migration
Umstieg auf eine andere Verschlüsselungslösung
Wenn Sie verschlüsselte Datenbanken haben, verhindert das Entfernen des EKM-Providers den Zugriff auf diese Datenbanken, sofern Sie sie nicht zuvor entschlüsseln oder die Schlüsselkonfiguration erhalten. Entschlüsseln Sie zuerst oder belassen Sie Provider, Anmeldedaten und Masterschlüssel an Ort und Stelle.
Voraussetzungen
- Alle verschlüsselten Datenbanken sichern
- Aktuelle Konfiguration dokumentieren (Anmeldedaten, Schlüssel usw.)
- Administratorrechte auf dem Server
- Sicherstellen, dass keine aktiven verschlüsselten Datenbanken vorhanden sind (oder eine erneute Verschlüsselung einplanen)
Schritte vor der Deinstallation
Verschlüsselte Datenbanken erfassen
Identifizieren Sie zunächst alle durch TDE geschützten Datenbanken:
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;
GOKonfiguration dokumentieren
Erfassen Sie vor der Deinstallation die aktuellen Details zu Provider, Schlüssel und Anmeldedaten:
-- 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%';
GODatenbanken sichern
Sichern Sie stets alle verschlüsselten Datenbanken, bevor Sie mit der Deinstallation fortfahren.
BACKUP DATABASE <DatabaseName>
TO DISK = 'C:\Backups\<DatabaseName>_PreUninstall.bak'
WITH COMPRESSION, CHECKSUM;
GOSQL Server-Bereinigung
Entfernen Sie die SQL Server-Objekte in dieser Reihenfolge: Anmeldedaten-Zuordnungen, dann Logins, dann Anmeldedaten, dann den asymmetrischen Schlüssel und zuletzt den Provider. Ein Provider kann nicht entfernt werden, solange ihn noch ein Schlüssel oder Anmeldedaten referenzieren.
Ist eine Datenbank noch verschlüsselt, entschlüsseln Sie sie zuerst (siehe Vor der Deinstallation entschlüsseln). Das Entfernen des Masterschlüssels oder Providers, während eine Datenbank verschlüsselt ist, macht diese Datenbank unwiederherstellbar.
Anmeldedaten-Zuordnungen entfernen
Entfernen Sie die Anmeldedaten aus jedem Login, dem sie zugeordnet sind:
-- 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;
GODen Schlüssel-Login entfernen
DROP LOGIN TDE_Master_Login;
GODie Anmeldedaten entfernen
DROP CREDENTIAL DkeEkmCredential;
GOSchlägt das Entfernen der Anmeldedaten fehl, stellen Sie sicher, dass jede Login-Zuordnung aus Schritt 1 zuvor entfernt wurde.
Den asymmetrischen Schlüssel entfernen
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GODies entfernt nur den SQL Server-Verweis auf den Schlüssel. Der Schlüssel selbst verbleibt in DuoKey und kann später mit OPEN_EXISTING erneut geöffnet werden.
Den kryptografischen Provider entfernen
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GOSie können einen kryptografischen Provider nicht entfernen, solange er noch von einem asymmetrischen Schlüssel oder Anmeldedaten referenziert wird. Führen Sie zuerst die Schritte 1 bis 4 aus.
Die Provider-Dateien entfernen
Nachdem die SQL-Objekte entfernt wurden, löschen Sie die bereitgestellten Dateien vom Host.
SQL Server stoppen (falls nötig)
Die Provider-Bibliothek wird von SQL Server geladen. Ist die Datei gesperrt, stoppen Sie den Dienst, bevor Sie sie löschen.
Stop-Service MSSQLSERVERDie Provider-Bibliothek löschen
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 -ForceDie Konfigurations- und Laufzeitdateien entfernen
Löschen Sie den ProgramData-Ordner, der config.toml, keystore.json und dke-ekm.log enthält.
Remove-Item "C:\ProgramData\DKE\EKM" -Recurse -ForceDatenbanken bleiben verschlüsselt? Löschen Sie keystore.json nicht. Der Provider benötigt sie, um TDE-geschützte Datenbanken nach einem Neustart wieder zu öffnen.
SQL Server neu starten
Start-Service MSSQLSERVERÜberprüfung nach der Deinstallation
Entfernung der Dateien überprüfen
Zu überprüfende entfernte Dateien
Falls der optionale Schlüssel HKLM\SOFTWARE\DKE\EKM für erweiterte Einstellungen erstellt wurde, können Sie ihn ebenfalls entfernen. Eine Standardinstallation erstellt keine Registrierungseinträge.
SQL Server-Status überprüfen
-- Should return no rows
SELECT name, guid, is_enabled
FROM sys.cryptographic_providers
WHERE name = 'DkeEkm';
GOUmgang mit verschlüsselten Datenbanken
Option 1: Datenbanken verschlüsselt lassen
Wenn Sie eine erneute Installation planen oder die Verschlüsselung beibehalten möchten:
Sicherungen aufbewahren
Sicherungen der verschlüsselten Datenbanken pflegen
Den Keystore erhalten
config.toml und keystore.json aufbewahren, damit der Schlüssel erneut geöffnet werden kann
Neuinstallation planen
Den Provider erneut bereitstellen und den Masterschlüssel bei Bedarf wieder öffnen
Option 2: Vor der Deinstallation entschlüsseln
Wenn Sie die Verschlüsselung vollständig entfernen möchten, entschlüsseln Sie jede Datenbank, bevor Sie SQL-Objekte entfernen oder Dateien löschen:
-- 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>';
GOFehlerbehebung
Notfall-Deinstallation
Eine Notfall-Deinstallation kann verschlüsselte Datenbanken unzugänglich machen. Verwenden Sie sie nur in kritischen Situationen mit ordnungsgemäßen Sicherungen.
-- Force remove references, then the provider
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO
DROP CREDENTIAL DkeEkmCredential;
GO
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GOEntfernen Sie anschließend die Provider-Dateien wie oben beschrieben.