Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 przy użyciu certyfikatu, który jest chroniony przez klucz główny bazy danych (DMK) master bazy danych. Aby uzyskać więcej informacji na temat ochrony klucza szyfrowania bazy danych przy użyciu klucza DMK, 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).
Ograniczenia
Aby utworzyć klucz szyfrowania bazy danych i zaszyfrować bazę danych, musisz być użytkownikiem o wysokim poziomie uprawnień (takim jak administrator systemu). Moduł EKM musi mieć możliwość uwierzytelnienia tego użytkownika.
Podczas uruchamiania aparat bazy danych musi otworzyć bazę danych. Należy utworzyć poświadczenie, które zostanie uwierzytelnione przez EKM i dodać je do identyfikatora logowania opartego na kluczu asymetrycznym. Użytkownicy nie mogą zalogować się przy użyciu tego identyfikatora logowania, ale aparat bazy danych może uwierzytelnić się za pomocą urządzenia EKM.
Jeśli klucz asymetryczny przechowywany w module EKM zostanie utracony, nie można otworzyć bazy danych 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.
Uprawnienia
W tym artykule są używane następujące uprawnienia:
Aby zmienić opcję konfiguracji i uruchomić instrukcję
RECONFIGURE, należy przyznaćALTER SETTINGSuprawnienie na poziomie serwera. UprawnienieALTER SETTINGSjest niejawnie posiadane przez sysadmin i serveradmin role stałe serwera.Wymaga
ALTER ANY CREDENTIALuprawnień.Wymaga
ALTER ANY LOGINuprawnień.Wymaga
CREATE ASYMMETRIC KEYuprawnień.Wymaga
CONTROLuprawnień do szyfrowania bazy danych w bazie danych.
Korzystanie z Transact-SQL
Skopiuj pliki dostarczone przez dostawcę EKM do odpowiedniej lokalizacji na komputerze z programem SQL Server. W tym przykładzie
C:\EKM_Filesużywamy folderu .Zainstaluj certyfikaty na komputerze zgodnie z wymaganiami dostawcy EKM.
Notatka
Program SQL Server nie dostarcza dostawcy EKM. Każdy dostawca EKM może mieć różne procedury instalowania, konfigurowania i autoryzowania użytkowników. Aby wykonać ten krok, zapoznaj się z dokumentacją dostawcy EKM.
W Eksploratorze obiektów , nawiąż połączenie z wystąpieniem Silnika bazy danych.
Na pasku Standard wybierz pozycję Nowe zapytanie.
Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie wybierz pozycję Wykonaj.
-- 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
Treści powiązane
- Transparent Data Encryption dla usług SQL Database, SQL Managed Instance i Azure Synapse Analytics
- sp_configure (Transact-SQL)
- UTWÓRZ DOSTAWCĘ KRYPTOGRAFICZNEGO (Transact-SQL)
- UTWÓRZ CREDENTIAL (Transact-SQL)
- CREATE ASYMETRYCZNY KLUCZ (Transact-SQL)
- UTWÓRZ LOGIN (Transact-SQL)
- UTWÓRZ KLUCZ SZYFROWANIA BAZY DANYCH (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTER DATABASE (Transact-SQL)