Udostępnij za pośrednictwem


Włączanie funkcji TDE w programie SQL Server przy użyciu EKM

Dotyczy:programu SQL Server

W tym artykule opisano sposób włączania funkcji Transparent Data Encryption (TDE) w programie SQL Server w celu ochrony klucza szyfrowania bazy danych przy użyciu klucza asymetrycznego przechowywanego w module zarządzania kluczami rozszerzalnymi (EKM) za pomocą języka Transact-SQL.

Funkcja TDE szyfruje magazyn całej bazy danych przy użyciu klucza symetrycznego nazywanego kluczem szyfrowania bazy danych. Klucz szyfrowania bazy danych może być również chroniony za pomocą certyfikatu, który jest zabezpieczony przez klucz główny bazy danych nadrzędnej. Aby uzyskać więcej informacji na temat ochrony klucza szyfrowania bazy danych przy użyciu klucza głównego bazy danych, zobacz Transparent Data Encryption (TDE). Aby uzyskać informacje na temat konfigurowania funkcji TDE, gdy program SQL Server jest uruchomiony na maszynie wirtualnej platformy Azure, zobacz Extensible Key Management using Azure Key Vault (SQL Server). Aby uzyskać informacje na temat konfigurowania funkcji TDE przy użyciu klucza w usłudze Azure Key Vault, zobacz Use SQL Server Connector with SQL Encryption Features (Używanie łącznika programu SQL Server z funkcjami szyfrowania SQL).

Przed rozpoczęciem

Ograniczenia i ograniczenia

  • Aby utworzyć klucz szyfrowania bazy danych i zaszyfrować bazę danych, musisz być użytkownikiem o wysokim poziomie uprawnień (takim jak administrator systemu). Ten użytkownik musi mieć możliwość uwierzytelnienia przez moduł EKM.

  • Po uruchomieniu aparat bazy danych musi otworzyć bazę danych. W tym celu należy utworzyć poświadczenie, które zostanie uwierzytelnione przez EKM, i dodać je do logowania opartego na kluczu asymetrycznym. Użytkownicy nie mogą zalogować się przy użyciu tego identyfikatora logowania, ale silnik bazy danych będzie mógł uwierzytelnić się za pomocą urządzenia EKM.

  • Jeśli klucz asymetryczny przechowywany w module EKM zostanie utracony, baza danych nie będzie mogła zostać otwarta przez program SQL Server. Jeśli dostawca EKM umożliwia utworzenie kopii zapasowej klucza asymetrycznego, należy utworzyć kopię zapasową i zapisać ją w bezpiecznej lokalizacji.

  • Opcje i parametry wymagane przez dostawcę EKM mogą różnić się od podanych w poniższym przykładzie kodu. Aby uzyskać więcej informacji, skontaktuj się z dostawcą EKM.

Bezpieczeństwo

Uprawnienia

W tym artykule są używane następujące uprawnienia:

  • Aby zmienić opcję konfiguracji i uruchomić instrukcję RECONFIGURE, musisz mieć uprawnienia ALTER SETTINGS na poziomie serwera. Uprawnienie ALTER SETTINGS jest niejawnie posiadane przez przypisane role serwera: sysadmin i serveradmin.

  • Wymaga uprawnienia ALTER ANY CREDENTIAL.

  • Wymaga uprawnienia ALTER ANY LOGIN.

  • Wymaga uprawnienia do CREATE KLUCZA ASYMETRYCZNEGO.

  • Wymaga uprawnień CONTROL w bazie danych do szyfrowania bazy danych.

Korzystanie z Transact-SQL

Aby włączyć funkcję TDE przy użyciu EKM

  1. Skopiuj pliki dostarczone przez dostawcę EKM do odpowiedniej lokalizacji na komputerze z programem SQL Server. W tym przykładzie używamy folderu C:\EKM_Files.

  2. Zainstaluj certyfikaty na komputerze zgodnie z wymaganiami dostawcy EKM.

    Notatka

    Program SQL Server nie dostarcza usługodawcy EKM. Każdy dostawca EKM może mieć różne procedury instalowania, konfigurowania i autoryzowania użytkowników. Skonsultuj się z dokumentacją dostawcy EKM, aby wykonać ten krok.

  3. W Eksploratorze obiektów , nawiąż połączenie z wystąpieniem Silnika bazy danych.

  4. Na pasku standardowym kliknij pozycję Nowe zapytanie.

  5. Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie kliknij pozycję Wykonaj.

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

Aby uzyskać więcej informacji, zobacz następujące tematy:

Zobacz też

Szyfrowanie danych w trybie przezroczystym w usłudze Azure SQL Database