Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 databasehoofdsleutel (DMK) van de master database. Zie TDE (Transparent Data Encryption) voor meer informatie over het beveiligen van de databaseversleutelingssleutel met behulp van de DMK. Zie Extensible Key Management using Azure Key Vault (SQL Server) (Extensible Key Management using Azure Key Vault (SQL Server) voor informatie over het configureren van TDE wanneer SQL Server wordt uitgevoerd op een virtuele Azure-machine. Zie SQL Server Connector gebruiken met SQL-versleutelingsfunctiesvoor meer informatie over het configureren van TDE met behulp van een sleutel in de Azure-sleutelkluis.
Beperkingen
U moet een gebruiker met hoge bevoegdheden (zoals een systeembeheerder) zijn om een databaseversleutelingssleutel te maken en een database te versleutelen. De EKM-module moet die gebruiker kunnen verifiëren.
Bij het opstarten moet de database-engine de database openen. U moet 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 in het volgende codevoorbeeld is opgegeven. Zie uw EKM-provider voor meer informatie.
Machtigingen
In dit artikel worden de volgende machtigingen gebruikt:
Als u een configuratieoptie wilt wijzigen en de
RECONFIGUREinstructie wilt uitvoeren, moet u deALTER SETTINGSmachtiging op serverniveau krijgen. De machtigingALTER SETTINGSwordt impliciet gehouden door de vaste serverrollen sysadmin en serverbeheerder.Hiervoor is toestemming vereist
ALTER ANY CREDENTIAL.Hiervoor is toestemming vereist
ALTER ANY LOGIN.Hiervoor is toestemming vereist
CREATE ASYMMETRIC KEY.Vereist
CONTROLtoestemming voor de database om de database te versleutelen.
Gebruik Transact-SQL
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
C:\EKM_Filesmap.Installeer certificaten op de computer zoals vereist door uw EKM-provider.
Notitie
SQL Server levert geen EKM-provider. 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.
Selecteer op de standaardbalk de optie Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.
-- 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
Verwante inhoud
- Transparante gegevensversleuteling voor SQL Database, SQL Managed Instance en Azure Synapse Analytics
- sp_configure (Transact-SQL)
- CRYPTOGRAFISCHE PROVIDER MAKEN (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ASYMMETRISCHE SLEUTEL (Transact-SQL) maken
- INLOGGEN MAKEN (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTER DATABASE (Transact-SQL)