TDE inschakelen op SQL Server met behulp van EKM
van toepassing op:SQL Server-
In dit artikel wordt beschreven hoe u TDE (Transparent Data Encryption) inschakelt in SQL Server om een databaseversleutelingssleutel te beveiligen met behulp van een asymmetrische sleutel die is opgeslagen in een EKM-module (Extensible Key Management) met Transact-SQL.
TDE versleutelt de opslag van een hele database met behulp van een symmetrische sleutel, de databaseversleutelingssleutel genoemd. De databaseversleutelingssleutel kan ook worden beveiligd met behulp van een certificaat dat wordt beveiligd door de hoofdsleutel van de database van de hoofddatabase. Zie TDE (Transparent Data Encryption)voor meer informatie over het beveiligen van de databaseversleutelingssleutel met behulp van de hoofdsleutel van de database. Zie Extensible Key Management using Azure Key Vault (SQL Server)voor informatie over het configureren van TDE wanneer SQL Server wordt uitgevoerd op een Azure-VM. Zie SQL Server Connector gebruiken met SQL-versleutelingsfunctiesvoor meer informatie over het configureren van TDE met behulp van een sleutel in de Azure-sleutelkluis.
Voordat u begint
Beperkingen en beperkingen
U moet een gebruiker met hoge bevoegdheden (zoals een systeembeheerder) zijn om een databaseversleutelingssleutel te maken en een database te versleutelen. Deze gebruiker moet kunnen worden geverifieerd door de EKM-module.
Bij het opstarten van de database-engine moet de database worden geopend. Hiervoor moet u een referentie maken die wordt geverifieerd door de EKM en deze toevoegen aan een aanmelding die is gebaseerd op een asymmetrische sleutel. Gebruikers kunnen zich niet aanmelden met die aanmelding, maar de Database Engine kan zichzelf verifiëren met het EKM-apparaat.
Als de asymmetrische sleutel die is opgeslagen in de EKM-module verloren gaat, kan de database niet worden geopend door SQL Server. Als u met de EKM-provider een back-up van de asymmetrische sleutel kunt maken, moet u een back-up maken en opslaan op een veilige locatie.
De opties en parameters die door uw EKM-provider zijn vereist, kunnen verschillen van wat is opgegeven in het onderstaande codevoorbeeld. Zie uw EKM-provider voor meer informatie.
Veiligheid
Machtigingen
In dit artikel worden de volgende machtigingen gebruikt:
Als u een configuratieoptie wilt wijzigen en de instructie RECONFIGURE wilt uitvoeren, moet u de machtiging ALTER SETTINGS op serverniveau krijgen. De machtiging ALTER SETTINGS wordt impliciet toegekend aan de sysadmin en serveradmin vaste serverrollen.
Vereist de ALTER ANY CREDENTIAL-machtiging.
Hiervoor is ALTER ANY LOGIN-machtiging vereist.
Hiervoor is de machtiging CREATE ASYMMETRIC KEY vereist.
Vereist CONTROL-machtiging voor de database om de database te versleutelen.
Transact-SQL gebruiken
TDE inschakelen door middel van EKM
Kopieer de bestanden die door de EKM-provider worden geleverd naar een geschikte locatie op de SQL Server-computer. In dit voorbeeld gebruiken we de map C:\EKM_Files.
Installeer certificaten op de computer zoals vereist door uw EKM-provider.
Notitie
SQL Server biedt geen EKM-provider aan. Elke EKM-provider kan verschillende procedures hebben voor het installeren, configureren en autoriseren van gebruikers. Raadpleeg de documentatie van uw EKM-provider om deze stap te voltooien.
Maak in de Objectverkennerverbinding met een exemplaar van de Database Engine.
Klik op de Standardbalk op Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
-- 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
Zie het volgende voor meer informatie: