Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
Cet article décrit comment activer Transparent Data Encryption (TDE) dans SQL Server pour protéger une clé de chiffrement de base de données en utilisant une clé asymétrique stockée dans un module de gestion de clés extensible (EKM) avec Transact-SQL.
Le chiffrement transparent des données chiffre le stockage d’une base de données entière à l’aide d’une clé symétrique appelée clé de chiffrement de base de données. La clé de chiffrement de base de données peut également être protégée à l’aide d’un certificat, protégé par la clé principale de base de données (DMK) de la master base de données. Pour plus d’informations sur la protection de la clé de chiffrement de base de données à l’aide du DMK, consultez Transparent Data Encryption (TDE). Pour plus d’informations sur la configuration de TDE quand SQL Server s’exécute sur une machine virtuelle Azure, consultez Extensible Key Management Using Azure Key Vault (SQL Server). Pour plus d’informations sur la configuration de TDE à l’aide d’une clé dans Azure Key Vault, consultez Utiliser le connecteur SQL Server avec les fonctionnalités de chiffrement SQL.
Limites
Vous devez être un utilisateur doté de privilèges élevés (comme un administrateur système) pour créer une clé de chiffrement de base de données et chiffrer une base de données. Le module EKM doit être en mesure d’authentifier cet utilisateur.
Au démarrage, le moteur de base de données doit ouvrir la base de données. Vous devez créer des informations d’identification qui seront authentifiées par l’EKM et l’ajouter à une connexion basée sur une clé asymétrique. Les utilisateurs ne peuvent pas se connecter à l’aide de cette connexion, mais le moteur de base de données peut s’authentifier auprès de l’appareil EKM.
Si la clé asymétrique stockée dans le module EKM est perdue, la base de données ne peut pas être ouverte par SQL Server. Si le fournisseur EKM vous permet de sauvegarder la clé asymétrique, vous devez créer une sauvegarde et la stocker dans un endroit sûr.
Les options et les paramètres requis par votre fournisseur EKM peuvent différer de ce qui est fourni dans l’exemple de code suivant. Pour plus d'informations, consultez votre fournisseur EKM.
autorisations
Cet article utilise les autorisations suivantes :
Pour modifier une option de configuration et exécuter l’instruction
RECONFIGURE, vous devez disposer de l’autorisation auALTER SETTINGSniveau du serveur. L’autorisationALTER SETTINGSest implicitement détenue par les rôles serveur fixes sysadmin et serveradmin.Nécessite
ALTER ANY CREDENTIALune autorisation.Nécessite
ALTER ANY LOGINune autorisation.Nécessite
CREATE ASYMMETRIC KEYune autorisation.Nécessite
CONTROLl’autorisation sur la base de données pour chiffrer la base de données.
Utiliser Transact-SQL
Copiez les fichiers fournis par le fournisseur EKM dans un emplacement approprié sur l’ordinateur SQL Server. Dans cet exemple, nous utilisons le
C:\EKM_Filesdossier.Installez les certificats requis par votre fournisseur EKM sur votre ordinateur.
Remarque
SQL Server ne fournit pas de fournisseur EKM. Chaque fournisseur EKM peut utiliser des procédures différentes pour l’installation, la configuration et l’autorisation des utilisateurs. Pour effectuer cette étape, consultez la documentation de votre fournisseur EKM.
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.
-- Enable advanced options. EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXECUTE sp_configure 'EKM provider enabled', 1; GO RECONFIGURE; GO -- Create a cryptographic provider, which we have chosen to call "EKM_Prov," based on an EKM provider CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll'; GO -- Create a credential that will be used by system administrators. CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = '<password>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; GO -- Add the credential to a high privileged user such as your -- own domain login in the format [DOMAIN\login]. ALTER LOGIN [Contoso\Mary] ADD CREDENTIAL sa_ekm_tde_cred; GO -- create an asymmetric key stored inside the EKM provider USE master; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key'; GO -- Create a credential that will be used by the Database Engine. CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2', SECRET = '<secret>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; -- Add a login used by TDE, and add the new credential to the login. CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred; GO -- Create the database encryption key that will be used for TDE. USE AdventureWorks2022; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE AdventureWorks2022 SET ENCRYPTION ON; GO
Contenu connexe
- Chiffrement transparent des données pour SQL Database, SQL Managed Instance et Azure Synapse Analytics
- sp_configure (Transact-SQL)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- CRÉER CRÉDENTIAL (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- CRÉER UNE CONNEXION (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- MODIFIER LA BASE DE DONNÉES (Transact-SQL)