Zum Hauptinhalt springen

Deinstallation

Gilt für:
SQL Server 2016+Administrator erforderlichSicherung erforderlich

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

Warnung

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:

Verschlüsselte Datenbanken findenSQL
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

Konfiguration dokumentieren​

Erfassen Sie vor der Deinstallation die aktuellen Details zu Provider, Schlüssel und Anmeldedaten:

Aktuelle Konfiguration dokumentierenSQL
-- 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

Datenbanken sichern​

Wichtig

Sichern Sie stets alle verschlüsselten Datenbanken, bevor Sie mit der Deinstallation fortfahren.

Verschlüsselte Datenbank sichernSQL
BACKUP DATABASE <DatabaseName>
TO DISK = 'C:\Backups\<DatabaseName>_PreUninstall.bak'
WITH COMPRESSION, CHECKSUM;
GO

SQL 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.

Warnung

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.

1

Anmeldedaten-Zuordnungen entfernen

Entfernen Sie die Anmeldedaten aus jedem Login, dem sie zugeordnet sind:

Anmeldedaten-Zuordnungen auflisten und entfernenSQL
-- 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
2

Den Schlüssel-Login entfernen

Vom asymmetrischen Schlüssel gedeckten Login entfernenSQL
DROP LOGIN TDE_Master_Login;
GO
3

Die Anmeldedaten entfernen

Anmeldedaten entfernenSQL
DROP CREDENTIAL DkeEkmCredential;
GO
Tipp

Schlägt das Entfernen der Anmeldedaten fehl, stellen Sie sicher, dass jede Login-Zuordnung aus Schritt 1 zuvor entfernt wurde.

4

Den asymmetrischen Schlüssel entfernen

Asymmetrischen Schlüssel entfernenSQL
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO
Vorsicht

Dies 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.

5

Den kryptografischen Provider entfernen

Provider entfernenSQL
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GO
Vorsicht

Sie 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.

1

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.

Den SQL Server-Dienst stoppenPOWERSHELL
Stop-Service MSSQLSERVER
2

Die Provider-Bibliothek löschen

Den Provider-Ordner entfernenPOWERSHELL
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
3

Die Konfigurations- und Laufzeitdateien entfernen

Löschen Sie den ProgramData-Ordner, der config.toml, keystore.json und dke-ekm.log enthält.

Den ProgramData-Ordner entfernenPOWERSHELL
Remove-Item "C:\ProgramData\DKE\EKM" -Recurse -Force
Vorsicht

Datenbanken 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.

4

SQL Server neu starten

Den SQL Server-Dienst startenPOWERSHELL
Start-Service MSSQLSERVER

Überprüfung nach der Deinstallation​

Entfernung der Dateien überprüfen​

Zu überprüfende entfernte Dateien

dke_ekm_provider.dllC:\Program Files\DKE\EKM
config.tomlC:\ProgramData\DKE\EKM
keystore.jsonC:\ProgramData\DKE\EKM
dke-ekm.logC:\ProgramData\DKE\EKM
Optionaler Registrierungsschlüssel

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​

Entfernung des Providers überprüfenSQL
-- Should return no rows
SELECT name, guid, is_enabled
FROM sys.cryptographic_providers
WHERE name = 'DkeEkm';
GO

Umgang 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:

TDE deaktivieren und entschlüsselnSQL
-- 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

Fehlerbehebung​

Notfall-Deinstallation​

Warnung

Eine Notfall-Deinstallation kann verschlüsselte Datenbanken unzugänglich machen. Verwenden Sie sie nur in kritischen Situationen mit ordnungsgemäßen Sicherungen.

Schnelles erzwungenes Entfernen der SQL-ObjekteSQL
-- Force remove references, then the provider
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO

DROP CREDENTIAL DkeEkmCredential;
GO

DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GO

Entfernen Sie anschließend die Provider-Dateien wie oben beschrieben.

Nächste Schritte​