Sdílet prostřednictvím


Povolení TDE na SQL Serveru pomocí EKM

platí pro:SQL Server

Tento článek popisuje, jak povolit transparentní šifrování dat (TDE) v SQL Serveru k ochraně šifrovacího klíče databáze pomocí asymetrického klíče uloženého v modulu pro správu rozšiřitelného klíče (EKM) pomocí jazyka Transact-SQL.

TDE šifruje úložiště celé databáze pomocí symetrického klíče zvaného šifrovací klíč databáze. Šifrovací klíč databáze může být také chráněn pomocí certifikátu, který je zabezpečen hlavním klíčem hlavní databáze. Další informace o ochraně šifrovacího klíče databáze pomocí hlavního klíče databáze naleznete v tématu transparentní šifrování dat (TDE). Informace o konfiguraci transparentního šifrování dat při spuštění SQL Serveru na virtuálním počítači Azure najdete v tématu Rozšiřitelná správa klíčů pomocí služby Azure Key Vault (SQL Server). Informace o konfiguraci transparentního šifrování dat (TDE) pomocí klíče uloženého v Azure Key Vault najdete v tématu Použití konektoru SQL Server s funkcemi šifrování SQL.

Než začnete

Omezení a restrikce

  • Abyste mohli vytvořit šifrovací klíč databáze a šifrovat databázi, musíte být vysoce privilegovaný uživatel (například správce systému). Tento uživatel musí být schopen být ověřen modulem EKM.

  • Po spuštění databázového stroje musí databázi otevřít. K tomu byste měli vytvořit přihlašovací údaje, které bude ověřovat EKM, a přidat ho k přihlášení založenému na asymetrického klíči. Uživatelé se nemůžou přihlásit pomocí přihlášení, ale databázový stroj se bude moct ověřit pomocí zařízení EKM.

  • Pokud dojde ke ztrátě asymetrického klíče uloženého v modulu EKM, nebude možné databázi otevřít SQL Serverem. Pokud poskytovatel EKM umožňuje zálohovat asymetrický klíč, měli byste vytvořit zálohu a uložit ji do zabezpečeného umístění.

  • Možnosti a parametry vyžadované vaším poskytovatelem EKM se mohou lišit od toho, co je uvedeno v následujícím příkladu kódu. Další informace získáte od poskytovatele EKM.

Bezpečnost

Dovolení

Tento článek používá následující oprávnění:

  • Pokud chcete změnit možnost konfigurace a spustit příkaz RECONFIGURE, musíte mít udělená oprávnění na úrovni serveru ALTER SETTINGS. Oprávnění ALTER SETTINGS je implicitně uděleno fixními serverovými rolemi sysadmin a serveradmin .

  • Vyžaduje oprávnění ALTER ANY CREDENTIAL.

  • Vyžaduje oprávnění ALTER ANY LOGIN.

  • Vyžaduje oprávnění CREATE ASYMMETRIC KEY.

  • K šifrování databáze vyžaduje oprávnění CONTROL.

Použití Transact-SQL

Povolení transparentního šifrování dat pomocí EKM

  1. Zkopírujte soubory poskytnuté poskytovatelem EKM do vhodného umístění na počítači s SQL Serverem. V tomto příkladu použijeme složku C:\EKM_Files.

  2. Nainstalujte certifikáty do počítače podle požadavků poskytovatele EKM.

    Poznámka

    SQL Server neposkytuje poskytovatele EKM. Každý poskytovatel EKM může mít různé postupy pro instalaci, konfiguraci a autorizaci uživatelů. Poraďte se s dokumentací svého poskytovatele EKM, abyste tento krok dokončili.

  3. V Průzkumníku objektůse připojte k instanci databázového stroje.

  4. Na panelu Standard klikněte na Nový dotaz.

  5. Zkopírujte a vložte následující příklad do okna dotazu a klikněte na Spustit.

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

Další informace najdete v následujících tématech:

Viz také

transparentního šifrování dat s využitím služby Azure SQL Database