Désinstallation
Désinstaller le fournisseur EKM
Supprimer correctement le fournisseur SQL EKM DuoKey de votre SQL Server
Quand désinstaller
Vous pouvez avoir besoin de désinstaller le fournisseur EKM dans les scénarios suivants :
Dépannage
Résolution de problèmes d'installation ou de configuration
Mise à niveau
Installation d'une version plus récente du fournisseur
Mise hors service
Suppression de SQL EKM du serveur
Migration
Passage à une autre solution de chiffrement
Si vous avez des bases chiffrées, la suppression du fournisseur EKM empêchera l'accès à ces bases, à moins que vous ne les déchiffriez au préalable ou que vous ne conserviez la configuration des clés. Déchiffrez d'abord, ou conservez en place le fournisseur, l'identifiant et la clé maître.
Prérequis
- Sauvegarder toutes les bases chiffrées
- Documenter la configuration actuelle (identifiants, clés, etc.)
- Privilèges d'administrateur sur le serveur
- Vérifier qu'aucune base chiffrée n'est active (ou prévoir un rechiffrement)
Étapes préalables à la désinstallation
Inventorier les bases chiffrées
Commencez par identifier toutes les bases protégées par 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;
GODocumenter la configuration
Consignez les détails du fournisseur, de la clé et de l'identifiant avant de désinstaller :
-- 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%';
GOSauvegarder les bases
Sauvegardez toujours toutes les bases chiffrées avant de procéder à la désinstallation.
BACKUP DATABASE <DatabaseName>
TO DISK = 'C:\Backups\<DatabaseName>_PreUninstall.bak'
WITH COMPRESSION, CHECKSUM;
GONettoyage de SQL Server
Supprimez les objets SQL Server dans cet ordre : les associations d'identifiants, puis les connexions, puis les identifiants, puis la clé asymétrique, et enfin le fournisseur. Un fournisseur ne peut pas être supprimé tant qu'une clé ou un identifiant le référence encore.
Si une base est encore chiffrée, déchiffrez-la d'abord (voir Déchiffrer avant de désinstaller). Supprimer la clé maître ou le fournisseur alors qu'une base est chiffrée rend cette base irrécupérable.
Supprimer les associations d'identifiants
Retirez l'identifiant de chaque connexion à laquelle il est associé :
-- 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;
GOSupprimer la connexion de clé
DROP LOGIN TDE_Master_Login;
GOSupprimer l'identifiant
DROP CREDENTIAL DkeEkmCredential;
GOSi la suppression de l'identifiant échoue, assurez-vous que toutes les associations de connexion de l'étape 1 ont d'abord été retirées.
Supprimer la clé asymétrique
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GOCela ne supprime que la référence SQL Server à la clé. La clé elle-même demeure dans DuoKey et peut être rouverte ultérieurement avec OPEN_EXISTING.
Supprimer le fournisseur cryptographique
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GOVous ne pouvez pas supprimer un fournisseur cryptographique tant qu'il est encore référencé par une clé asymétrique ou un identifiant. Effectuez d'abord les étapes 1 à 4.
Supprimer les fichiers du fournisseur
Une fois les objets SQL supprimés, retirez de l'hôte les fichiers déployés.
Arrêter SQL Server (si nécessaire)
La bibliothèque du fournisseur est chargée par SQL Server. Si le fichier est verrouillé, arrêtez le service avant de le supprimer.
Stop-Service MSSQLSERVERSupprimer la bibliothèque du fournisseur
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 -ForceSupprimer les fichiers de configuration et d'exécution
Supprimez le dossier ProgramData, qui contient config.toml, keystore.json et dke-ekm.log.
Remove-Item "C:\ProgramData\DKE\EKM" -Recurse -ForceVous conservez des bases chiffrées ? Ne supprimez pas keystore.json. Le fournisseur en a besoin pour rouvrir les bases protégées par TDE après un redémarrage.
Redémarrer SQL Server
Start-Service MSSQLSERVERVérification après désinstallation
Vérifier la suppression des fichiers
Fichiers dont la suppression doit être vérifiée
Si la clé optionnelle HKLM\SOFTWARE\DKE\EKM a été créée pour des paramètres avancés, vous pouvez la supprimer également. Une installation standard ne crée aucune entrée de registre.
Vérifier l'état de SQL Server
-- Should return no rows
SELECT name, guid, is_enabled
FROM sys.cryptographic_providers
WHERE name = 'DkeEkm';
GOGérer les bases chiffrées
Option 1 : Conserver les bases chiffrées
Si vous prévoyez de réinstaller ou de maintenir le chiffrement :
Conserver les sauvegardes
Conservez des sauvegardes des bases chiffrées
Préserver le keystore
Conservez config.toml et keystore.json afin que la clé puisse être rouverte
Planifier la réinstallation
Redéployez le fournisseur et rouvrez la clé maître le moment venu
Option 2 : Déchiffrer avant de désinstaller
Si vous souhaitez supprimer entièrement le chiffrement, déchiffrez chaque base avant de supprimer le moindre objet SQL ou de supprimer des fichiers :
-- 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>';
GODépannage
Désinstallation d'urgence
La désinstallation d'urgence peut rendre les bases chiffrées inaccessibles. À n'utiliser que dans des situations critiques et avec des sauvegardes appropriées.
-- Force remove references, then the provider
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO
DROP CREDENTIAL DkeEkmCredential;
GO
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GOSupprimez ensuite les fichiers du fournisseur comme décrit ci-dessus.