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 databasens huvudnyckel (DMK).master Mer information om hur du skyddar databaskrypteringsnyckeln med hjälp av DMK 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.
Begränsningar
Du måste vara en högprivilegierad användare (till exempel systemadministratör) för att skapa en databaskrypteringsnyckel och kryptera en databas. EKM-modulen måste kunna autentisera användaren.
Vid start måste databasmotorn öppna databasen. Du bör 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 följande kodexempel. För mer information, kontakta din EKM-leverantör.
Behörigheter
Den här artikeln använder följande behörigheter:
Om du vill ändra ett konfigurationsalternativ och köra -instruktionen
RECONFIGUREmåste du beviljas behörighet påALTER SETTINGSservernivå. BehörighetALTER SETTINGShålls implicit av de fasta serverrollerna sysadmin och serveradmin.Kräver
ALTER ANY CREDENTIALbehörighet.Kräver
ALTER ANY LOGINbehörighet.Kräver
CREATE ASYMMETRIC KEYbehörighet.Kräver
CONTROLbehörighet för databasen för att kryptera databasen.
Använd Transact-SQL
Kopiera filerna som tillhandahålls av EKM-providern till en lämplig plats på SQL Server-datorn. I det här exemplet använder
C:\EKM_Filesvi mappen.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. För att slutföra det här steget läser du dokumentationen för EKM-providern.
I Object Exploreransluter du till en instans av databasmotorn.
I standardfältet väljer du Ny fråga.
Kopiera och klistra in följande exempel i frågefönstret och välj Kör.
-- 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
Relaterat innehåll
- Transparent datakryptering för SQL Database, SQL Managed Instance och Azure Synapse Analytics
- sp_configure (Transact-SQL)
- SKAPA KRYPTOGRAFIPROVIDER (Transact-SQL)
- SKAPA AUTENTISERINGSUPPGIFTER (Transact-SQL)
- SKAPA ASYMMETRISK NYCKEL (Transact-SQL)
- SKAPA INLOGGNING (Transact-SQL)
- SKAPA DATABASKRYPTERINGSNYCKEL (Transact-SQL)
- ÄNDRA INLOGGNING (Transact-SQL)
- ÄNDRA DATABAS (Transact-SQL)