Dela via


Aktivera TDE på SQL Server med HJÄLP av EKM

gäller för:SQL Server

Den här artikeln beskriver hur du aktiverar transparent datakryptering (TDE) i SQL Server för att skydda en databaskrypteringsnyckel med hjälp av en asymmetrisk nyckel som lagras i en EKM-modul (Extensible Key Management) med Transact-SQL.

TDE krypterar lagringen av en hel databas med hjälp av en symmetrisk nyckel som kallas databaskrypteringsnyckeln. Databaskrypteringsnyckeln kan också skyddas med hjälp av ett certifikat som skyddas av huvuddatabasens huvudnyckel. Mer information om hur du skyddar databaskrypteringsnyckeln med hjälp av databashuvudnyckeln finns i Transparent datakryptering (TDE). Information om hur du konfigurerar TDE när SQL Server körs på en virtuell Azure-dator finns i Extensible Key Management Using Azure Key Vault (SQL Server). Information om hur du konfigurerar TDE med hjälp av en nyckel i Azure-nyckelvalvet finns i Använda SQL Server Connector med SQL-krypteringsfunktioner.

Innan du börjar

Begränsningar och restriktioner

  • Du måste vara en högprivilegierad användare (till exempel systemadministratör) för att skapa en databaskrypteringsnyckel och kryptera en databas. Användaren måste kunna autentiseras av EKM-modulen.

  • Vid start måste databasmotorn öppna databasen. För att göra detta bör du skapa en autentiseringsuppgift som ska autentiseras av EKM och lägga till den i en inloggning som baseras på en asymmetrisk nyckel. Användare kan inte logga in med den inloggningen, men databasmotorn kan autentisera sig själv med EKM-enheten.

  • Om den asymmetriska nyckeln som lagras i EKM-modulen går förlorad kan databasen inte öppnas av SQL Server. Om EKM-providern låter dig säkerhetskopiera den asymmetriska nyckeln bör du skapa en säkerhetskopia och lagra den på en säker plats.

  • Alternativen och parametrarna som krävs av EKM-providern kan skilja sig från vad som anges i kodexemplet nedan. För mer information, kontakta din EKM-leverantör.

Säkerhet

Behörigheter

Den här artikeln använder följande behörigheter:

  • Om du vill ändra ett konfigurationsalternativ och köra REKONFIGURERA-instruktionen måste du beviljas behörigheten ALTER SETTINGS på servernivå. Behörigheten ALTER SETTINGS innehas implicit av sysadmin och serveradmin fasta serverroller.

  • Kräver ALTER ANY CREDENTIAL-behörighet.

  • Kräver behörigheten "Ändra alla inloggningsbehörigheter".

  • Kräver behörighet för att skapa asymmetrisk nyckel.

  • Kräver KONTROLL-behörighet på databasen för att kryptera databasen.

Att använda Transact-SQL

Så här aktiverar du TDE med HJÄLP av EKM

  1. Kopiera filerna som tillhandahålls av EKM-providern till en lämplig plats på SQL Server-datorn. I det här exemplet använder vi mappen C:\EKM_Files.

  2. Installera certifikat på datorn enligt din EKM-leverantörs krav.

    Not

    SQL Server tillhandahåller ingen EKM-provider. Varje EKM-provider kan ha olika procedurer för att installera, konfigurera och auktorisera användare. Läs dokumentationen om EKM-providern för att slutföra det här steget.

  3. I Object Exploreransluter du till en instans av databasmotorn.

  4. I fältet Standard klickar du på Ny fråga.

  5. Kopiera och klistra in följande exempel i frågefönstret och klicka på Kör.

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

Mer information finns i följande:

Se även

transparent datakryptering med Azure SQL Database