Megosztás a következőn keresztül:


Transzparens adattitkosítás engedélyezése az SQL Serveren az EKM használatával

A következőkre vonatkozik:SQL Server

Ez a cikk azt ismerteti, hogyan engedélyezheti a transzparens adattitkosítást (TDE) az SQL Serveren az adatbázistitkosítási kulcsok védelméhez egy bővíthető kulcskezelési (EKM) modulban tárolt aszimmetrikus kulcs használatával a Transact-SQL-vel.

A TDE egy teljes adatbázis tárolását titkosítja az adatbázis titkosítási kulcsának nevezett szimmetrikus kulccsal. Az adatbázistitkosítási kulcs tanúsítványsal is védhető, amelyet az adatbázis adatbázis-főkulcsa master (DMK) véd. Az adatbázis-titkosítási kulcs DMK használatával történő védelméről további információt a Transzparens adattitkosítás (TDE) című témakörben talál. A TDE azure-beli virtuális gépen való futtatásakor a TDE konfigurálásáról további információt az Azure Key Vault (SQL Server) használatával történő bővíthető kulcskezelés című témakörben talál. A TDE azure-kulcstartóban lévő kulcs használatával történő konfigurálásáról további információt Az SQL Server-összekötő használata SQL Encryption-funkciókkalcímű témakörben talál.

Korlátozások

Az adatbázis titkosítási kulcsának létrehozásához és az adatbázis titkosításához magas jogosultsági szintű felhasználónak (például rendszergazdának) kell lennie. Az EKM-modulnak képesnek kell lennie a felhasználó hitelesítésére.

Indításkor az adatbázismotornak meg kell nyitnia az adatbázist. Létre kell hoznia egy hitelesítő adatot, amelyet az EKM hitelesít, majd hozzáadja egy aszimmetrikus kulcson alapuló bejelentkezéshez. A felhasználók nem tudnak bejelentkezni ezzel a bejelentkezéssel, de az adatbázismotor hitelesítheti magát az EKM-eszközzel.

Ha az EKM modulban tárolt aszimmetrikus kulcs elveszik, az adatbázis nem nyitható meg az SQL Serverrel. Ha az EKM-szolgáltató lehetővé teszi az aszimmetrikus kulcs biztonsági mentését, létre kell hoznia egy biztonsági másolatot, és biztonságos helyen kell tárolnia.

Az EKM-szolgáltató által igényelt beállítások és paraméterek eltérhetnek az alábbi kód példában megadott lehetőségektől. További információért forduljon az EKM-szolgáltatójához.

Engedélyek

Ez a cikk a következő engedélyeket használja:

  • A konfigurációs beállítás módosításához és az RECONFIGURE utasítás futtatásához meg kell adni a ALTER SETTINGS kiszolgálószintű engedélyt. A ALTER SETTINGS engedélyt implicit módon a sysadmin és serveradmin rögzített kiszolgálói szerepkörök birtokolják.

  • Engedélyre van szükség ALTER ANY CREDENTIAL .

  • Engedélyre van szükség ALTER ANY LOGIN .

  • Engedélyre van szükség CREATE ASYMMETRIC KEY .

  • Az adatbázis titkosításához engedélyre van szükség CONTROL az adatbázisban.

Használd a Transact-SQL-t

  1. Másolja az EKM-szolgáltató által megadott fájlokat az SQL Server-számítógép megfelelő helyére. Ebben a példában a C:\EKM_Files mappát használjuk.

  2. Telepítse a tanúsítványokat a számítógépre az EKM-szolgáltató igényei szerint.

    Jegyzet

    Az SQL Server nem biztosít EKM-szolgáltatót. Minden EKM-szolgáltató különböző eljárásokkal rendelkezhet a felhasználók telepítésére, konfigurálására és engedélyezésére. A lépés végrehajtásához tekintse meg az EKM-szolgáltató dokumentációját.

  3. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  4. A Standard sávon válassza Új lekérdezéslehetőséget.

  5. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza az Végrehajtás lehetőséget.

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