Aller au contenu principal

Désinstallation

S'applique à :
SQL Server 2016+Administrateur requisSauvegarde requise

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

Avertissement

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 :

Find Encrypted DatabasesSQL
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

Documenter la configuration​

Consignez les détails du fournisseur, de la clé et de l'identifiant avant de désinstaller :

Document Current ConfigurationSQL
-- 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

Sauvegarder les bases​

Important

Sauvegardez toujours toutes les bases chiffrées avant de procéder à la désinstallation.

Backup Encrypted DatabaseSQL
BACKUP DATABASE <DatabaseName>
TO DISK = 'C:\Backups\<DatabaseName>_PreUninstall.bak'
WITH COMPRESSION, CHECKSUM;
GO

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

Avertissement

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.

1

Supprimer les associations d'identifiants

Retirez l'identifiant de chaque connexion à laquelle il est associé :

List and Drop Credential MappingsSQL
-- 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

Supprimer la connexion de clé

Drop Login Backed by the Asymmetric KeySQL
DROP LOGIN TDE_Master_Login;
GO
3

Supprimer l'identifiant

Drop CredentialSQL
DROP CREDENTIAL DkeEkmCredential;
GO
Astuce

Si la suppression de l'identifiant échoue, assurez-vous que toutes les associations de connexion de l'étape 1 ont d'abord été retirées.

4

Supprimer la clé asymétrique

Drop Asymmetric KeySQL
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO
Attention

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

5

Supprimer le fournisseur cryptographique

Drop ProviderSQL
DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GO
Attention

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

1

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 the SQL Server ServicePOWERSHELL
Stop-Service MSSQLSERVER
2

Supprimer la bibliothèque du fournisseur

Remove the Provider FolderPOWERSHELL
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

Supprimer les fichiers de configuration et d'exécution

Supprimez le dossier ProgramData, qui contient config.toml, keystore.json et dke-ekm.log.

Remove the ProgramData FolderPOWERSHELL
Remove-Item "C:\ProgramData\DKE\EKM" -Recurse -Force
Attention

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

4

Redémarrer SQL Server

Start the SQL Server ServicePOWERSHELL
Start-Service MSSQLSERVER

Vérification après désinstallation​

Vérifier la suppression des fichiers​

Fichiers dont la suppression doit être vérifiée

dke_ekm_provider.dllC:\Program Files\DKE\EKM
config.tomlC:\ProgramData\DKE\EKM
keystore.jsonC:\ProgramData\DKE\EKM
dke-ekm.logC:\ProgramData\DKE\EKM
Clé de registre optionnelle

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​

Verify Provider RemovedSQL
-- Should return no rows
SELECT name, guid, is_enabled
FROM sys.cryptographic_providers
WHERE name = 'DkeEkm';
GO

Gé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 and DecryptSQL
-- 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

Dépannage​

Désinstallation d'urgence​

Avertissement

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.

Quick Force Removal of SQL ObjectsSQL
-- Force remove references, then the provider
USE master;
DROP ASYMMETRIC KEY TDE_Master;
GO

DROP CREDENTIAL DkeEkmCredential;
GO

DROP CRYPTOGRAPHIC PROVIDER DkeEkm;
GO

Supprimez ensuite les fichiers du fournisseur comme décrit ci-dessus.

Étapes suivantes​