Activer le chiffrement transparent des données à l’aide de la gestion de clés extensible (EKM)Enable TDE on SQL Server Using EKM

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cette rubrique explique comment activer Transparent Data Encryption (TDE) dans SQL ServerSQL Server pour protéger une clé de chiffrement de base de données à l’aide d’une clé asymétrique stockée dans un module de gestion de clés extensible (EKM) avec Transact-SQLTransact-SQL.This article describes how to enable transparent data encryption (TDE) in SQL ServerSQL Server to protect a database encryption key by using an asymmetric key stored in an extensible key management (EKM) module with Transact-SQLTransact-SQL.

L'ensemble de la base de données est chiffré à l'aide d'une clé symétrique, appelée clé de chiffrement de base de données.TDE encrypts the storage of an entire database by using a symmetric key called the database encryption key. La clé de chiffrement de base de données peut aussi être protégée à l’aide d’un certificat qui est lui-même protégé par la clé principale de base de données de la base de données MASTER.The database encryption key can also be protected using a certificate, which is protected by the database master key of the master database. Pour plus d’informations sur la protection de la clé de chiffrement de base de données à l’aide de la clé principale de base de données, consultez Transparent Data Encryption (TDE).For more information about protecting the database encryption key by using the database master key, see Transparent Data Encryption (TDE). Pour plus d’informations sur la configuration de TDE lorsque SQL ServerSQL Server est exécuté sur une machine virtuelle Azure, consultez Gestion de clés extensible à l’aide d’Azure Key Vault (SQL Server).For information about configuring TDE when SQL ServerSQL Server is running on an Azure VM, see 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.For information about configuring TDE using a key in the Azure key vault, see Use SQL Server Connector with SQL Encryption Features.

Avant de commencerBefore You Begin

Limitations et restrictionsLimitations and Restrictions

  • 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.You must be a high privileged user (such as a system administrator) to create a database encryption key and encrypt a database. Cet utilisateur doit pouvoir être authentifié par le module EKM.That user must be able to be authenticated by the EKM module.

  • Au démarrage, le Moteur de base de donnéesDatabase Engine doit ouvrir la base de données.Upon startup the Moteur de base de donnéesDatabase Engine must open the database. Pour ce faire, vous devez créer des informations d'identification qui seront authentifiées par la gestion de clés extensible et les ajouter à un nom de connexion reposant sur une clé asymétrique.To do this, you should create a credential that will be authenticated by the EKM, and add it to a login that is based on an asymmetric key. Les utilisateurs ne peuvent pas se connecter à l’aide de ce nom de connexion, mais le Moteur de base de donnéesDatabase Engine sera en mesure de s’authentifier auprès du périphérique EKM.Users cannot sign in using that login, but the Moteur de base de donnéesDatabase Engine will be able to authenticate itself with the EKM device.

  • En cas de perte de la clé asymétrique stockée dans le module EKM, la base de données ne peut pas être ouverte par SQL ServerSQL Server.If the asymmetric key stored in the EKM module is lost, the database will not be able to be opened by SQL ServerSQL 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.If the EKM provider lets you back up the asymmetric key, you should create a backup and store it in a secure location.

  • Les options et les paramètres requis par votre fournisseur EKM peuvent différer de ce qui est indiqué dans l'exemple de code ci-dessous.The options and parameters required by your EKM provider can differ from what is provided in the code example below. Pour plus d'informations, consultez votre fournisseur EKM.For more information, see your EKM provider.

SécuritéSecurity

AutorisationsPermissions

Cet article utilise les autorisations suivantes :This article uses the following permissions:

  • Pour modifier une option de configuration et exécuter l'instruction RECONFIGURE, vous devez disposer de l'autorisation de niveau serveur ALTER SETTINGS.To change a configuration option and run the RECONFIGURE statement, you must be granted the ALTER SETTINGS server-level permission. L'autorisation ALTER SETTINGS est implicitement détenue par les rôles serveur fixes sysadmin et serveradmin .The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

  • Requiert l'autorisation ALTER ANY CREDENTIAL.Requires ALTER ANY CREDENTIAL permission.

  • Nécessite l'autorisation ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

  • Requiert l'autorisation CREATE ASYMMETRIC KEY.Requires CREATE ASYMMETRIC KEY permission.

  • Requiert l'autorisation CONTROL sur la base de données pour chiffrer la base de données.Requires CONTROL permission on the database to encrypt the database.

Utilisation de Transact-SQLUsing Transact-SQL

Pour activer le chiffrement transparent des données (TDE) à l'aide de la gestion de clés extensible (EKM)To enable TDE using EKM

  1. Copiez les fichiers fournis par le fournisseur EKM à un emplacement approprié sur l'ordinateur SQL ServerSQL Server .Copy the files supplied by the EKM provider to an appropriate location on the SQL ServerSQL Server computer. Dans cet exemple, le dossier C:\EKM est utilisé.In this example, we use the C:\EKM folder.

  2. Installez les certificats requis par votre fournisseur EKM sur votre ordinateur.Install certificates to the computer as required by your EKM provider.

    Notes

    SQL ServerSQL Server ne propose pas de fournisseur EKM.does not supply an EKM provider. Chaque fournisseur EKM peut utiliser des procédures différentes pour l’installation, la configuration et l’autorisation des utilisateurs.Each EKM provider can have different procedures for installing, configuring, and authorizing users. Consultez la documentation de votre fournisseur EKM pour effectuer cette étape.Consult your EKM provider documentation to complete this step.

  3. Dans l' Explorateur d'objets, connectez-vous à une instance de Moteur de base de donnéesDatabase Engine.In Object Explorer, connect to an instance of Moteur de base de donnéesDatabase Engine.

  4. Dans la barre d'outils standard, cliquez sur Nouvelle requête.On the Standard bar, click New Query.

  5. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.Copy and paste the following example into the query window and click Execute.

    -- Enable advanced options.  
    sp_configure 'show advanced options', 1 ;  
    GO  
    RECONFIGURE ;  
    GO  
    -- Enable EKM provider  
    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 = 'q*gtev$0u#D1v'   
    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 = 'jeksi84&sLksi01@s'   
    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 AdventureWorks2012 ;  
    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 AdventureWorks2012   
    SET ENCRYPTION ON ;  
    GO  
    

Pour plus d'informations, consultez les documents suivants :For more information, see the following:

Voir aussiSee Also

Chiffrement transparent des données avec Azure SQL DatabaseTransparent Data Encryption with Azure SQL Database