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
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.
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.
W Eksploratorze obiektów , nawiąż połączenie z wystąpieniem Silnika bazy danych.
Na pasku standardowym kliknij pozycję Nowe zapytanie.
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