Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Den här artikeln beskriver hur du aktiverar transparent datakryptering (TDE) i SQL Server för att skydda en databaskrypteringsnyckel med hjälp av en asymmetrisk nyckel som lagras i en EKM-modul (Extensible Key Management) med Transact-SQL.
TDE krypterar lagringen av en hel databas med hjälp av en symmetrisk nyckel som kallas databaskrypteringsnyckeln. Databaskrypteringsnyckeln kan också skyddas med hjälp av ett certifikat som skyddas av huvuddatabasens huvudnyckel. Mer information om hur du skyddar databaskrypteringsnyckeln med hjälp av databashuvudnyckeln finns i Transparent datakryptering (TDE). Information om hur du konfigurerar TDE när SQL Server körs på en virtuell Azure-dator finns i Extensible Key Management Using Azure Key Vault (SQL Server). Information om hur du konfigurerar TDE med hjälp av en nyckel i Azure-nyckelvalvet finns i Använda SQL Server Connector med SQL-krypteringsfunktioner.
Innan du börjar
Begränsningar och restriktioner
Du måste vara en högprivilegierad användare (till exempel systemadministratör) för att skapa en databaskrypteringsnyckel och kryptera en databas. Användaren måste kunna autentiseras av EKM-modulen.
Vid start måste databasmotorn öppna databasen. För att göra detta bör du skapa en autentiseringsuppgift som ska autentiseras av EKM och lägga till den i en inloggning som baseras på en asymmetrisk nyckel. Användare kan inte logga in med den inloggningen, men databasmotorn kan autentisera sig själv med EKM-enheten.
Om den asymmetriska nyckeln som lagras i EKM-modulen går förlorad kan databasen inte öppnas av SQL Server. Om EKM-providern låter dig säkerhetskopiera den asymmetriska nyckeln bör du skapa en säkerhetskopia och lagra den på en säker plats.
Alternativen och parametrarna som krävs av EKM-providern kan skilja sig från vad som anges i kodexemplet nedan. För mer information, kontakta din EKM-leverantör.
Säkerhet
Behörigheter
Den här artikeln använder följande behörigheter:
Om du vill ändra ett konfigurationsalternativ och köra REKONFIGURERA-instruktionen måste du beviljas behörigheten ALTER SETTINGS på servernivå. Behörigheten ALTER SETTINGS innehas implicit av sysadmin och serveradmin fasta serverroller.
Kräver ALTER ANY CREDENTIAL-behörighet.
Kräver behörigheten "Ändra alla inloggningsbehörigheter".
Kräver behörighet för att skapa asymmetrisk nyckel.
Kräver KONTROLL-behörighet på databasen för att kryptera databasen.
Att använda Transact-SQL
Så här aktiverar du TDE med HJÄLP av EKM
Kopiera filerna som tillhandahålls av EKM-providern till en lämplig plats på SQL Server-datorn. I det här exemplet använder vi mappen C:\EKM_Files.
Installera certifikat på datorn enligt din EKM-leverantörs krav.
Not
SQL Server tillhandahåller ingen EKM-provider. Varje EKM-provider kan ha olika procedurer för att installera, konfigurera och auktorisera användare. Läs dokumentationen om EKM-providern för att slutföra det här steget.
I Object Exploreransluter du till en instans av databasmotorn.
I fältet Standard klickar du på Ny fråga.
Kopiera och klistra in följande exempel i frågefönstret och klicka på Kör.
-- 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
Mer information finns i följande: