Kommentar
Å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
SQL Server tillhandahåller datakrypteringsfunktioner tillsammans med EKM (Extensible Key Management ) med hjälp av MsCAPI-providern ( Microsoft Cryptographic API ) för kryptering och nyckelgenerering. Krypteringsnycklar för data och nyckelkryptering skapas i tillfälliga nyckelbehållare, och du måste exportera dem från en provider innan du lagrar dem i databasen. Denna metod låter SQL Server hantera nyckelhantering, inklusive en krypteringsnyckelhierarki och nyckelbackup.
Med den ökande efterfrågan på regelefterlevnad och omsorg om dataintegritet utnyttjar organisationer kryptering som ett sätt att erbjuda en djupförsvarslösning. Den här metoden är ofta opraktisk med endast verktyg för databaskrypteringshantering. Hårdvaruleverantörer tillhandahåller produkter som hanterar företagsnyckelhantering genom att använda hårdvarusäkerhetsmoduler (HSM). HSM-enheter lagrar krypteringsnycklar på maskinvaru- eller programvarumoduler. Detta tillvägagångssätt är säkrare eftersom krypteringsnycklarna inte finns med den krypterade datan.
Flera leverantörer erbjuder HSM:er för både nyckelhantering och krypteringsacceleration. HSM-enheter använder maskinvarugränssnitt med en serverprocess som mellanhand mellan ett program och en HSM. Leverantörer implementerar också MSCAPI-leverantörer i sina moduler, som kan vara maskinvara eller programvara. MSCAPI erbjuder ofta bara en delmängd av den funktionalitet som en HSM erbjuder. Leverantörer kan också tillhandahålla hanteringsprogramvara för HSM:er, nyckelkonfiguration och nyckelåtkomst.
HSM-implementationer varierar från leverantör till leverantör, och att använda dem med SQL Server kräver ett gemensamt gränssnitt. Även om MSCAPI tillhandahåller detta gränssnitt, stöder det endast en delmängd av HSM-funktionerna. Det har också andra begränsningar, till exempel oförmåga att bevara symmetriska nycklar internt och brist på sessionsorienterat stöd.
SQL Server Extensible Key Management låter tredjepartsleverantörer av EKM och HSM registrera sina moduler i SQL Server. Efter att en modul har registrerats kan användare av SQL Server använda de krypteringsnycklar som lagras på den. SQL Server kan då komma åt de avancerade krypteringsfunktioner som dessa moduler stödjer, såsom bulkkryptering och dekryptering, samt nyckelhanteringsfunktioner som nyckelåldrande och nyckelrotation.
När du kör SQL Server i en Azure-VM kan SQL Server använda nycklar lagrade i Azure Key Vault. För mer information, se Extensible Key Management using Azure Key Vault (SQL Server).
EKM-konfiguration
Extensible Key Management finns inte i varje utgåva av SQL Server. För en lista över funktioner som stöds av utgåvorna i SQL Server, se Utgåvor och stödda funktioner i SQL Server 2025.
Som standard är Utökningsbar nyckelhantering inaktiverad. För att aktivera denna funktion, använd sp_configure (Transact-SQL) lagrad procedur med följande alternativ och värde:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Anmärkning
Om du använder sp_configure för detta alternativ på utgåvor av SQL Server som inte stödjer EKM, får du ett felmeddelande.
För att inaktivera funktionen, sätt värdet till 0. Mer information om hur du anger serveralternativ finns i sp_configure (Transact-SQL).
Hur man använder EKM
SQL Server Extensible Key Management låter dig lagra krypteringsnycklarna som skyddar databasfilerna i en extern enhet som ett smartkort, en USB-enhet eller en EKM/HSM-modul. Den skyddar också data från databasadministratörer, förutom medlemmar i den fasta serverrollen sysadmin. Du kan kryptera data genom att använda krypteringsnycklar som endast databasanvändaren kan komma åt på den externa EKM/HSM-modulen.
Utökningsbar nyckelhantering ger också följande fördelar:
- En extra behörighetskontroll, som möjliggör åtskillnad av arbetsuppgifter.
- Högre prestanda för hårdvarubaserad kryptering och dekryptering.
- Generering av extern krypteringsnyckel.
- Extern krypteringsnyckellagring, som fysiskt separerar data och nycklar.
- Hämtning av krypteringsnyckel.
- Lagring av externa krypteringsnycklar, vilket möjliggör rotation av krypteringsnyckeln.
- Enklare återställning av krypteringsnycklar.
- Hanterbar krypteringsnyckeldistribution.
- Säkert bortskaffande av krypteringsnycklar.
Du kan använda Extensible Key Management för en kombination av användarnamn och lösenord eller andra metoder som definierats av EKM-drivrutinen.
Försiktighet
För felsökning kan Microsofts tekniska support kräva krypteringsnyckeln från EKM-providern. Du kan också behöva komma åt leverantörsverktyg eller processer för att lösa ett problem.
Autentisering med en EKM-enhet
En EKM-modul kan stödja mer än en typ av autentisering. Varje leverantör exponerar endast en typ av autentisering för SQL Server. Det vill säga, om modulen stödjer både grundläggande och andra autentiseringstyper, exponerar den den ena eller den andra, men inte båda.
EKM-enhetsspecifik grundläggande autentisering genom användning av användarnamn och lösenord
För EKM-moduler som stödjer grundläggande autentisering genom att använda ett användarnamn och lösenordspar, erbjuder SQL Server transparent autentisering genom att använda inloggningsuppgifter. Mer information om autentiseringsuppgifter finns i Autentiseringsuppgifter (databasmotor).
Du kan skapa en autentiseringsuppgift för en EKM-leverantör och koppla den till en inloggning, antingen ett Windows- eller ett SQL Server-konto, för att komma åt en EKM-modul per inloggning. Identitetsfältet i autentiseringsuppgiften innehåller användarnamnet, och secret-fältet innehåller ett lösenord för att ansluta till en EKM-modul.
Om det inte finns några inloggningsmappade autentiseringsuppgifter för EKM-leverantören använder SQL Server de autentiseringsuppgifter som är mappade till tjänstekontot.
En inloggning kan ha flera inloggningsuppgifter kopplade till sig, så länge varje inloggningsuppgift används för en separat EKM-leverantör. Det får bara finnas en mappad autentiseringsuppgift per EKM-provider per inloggning. Du kan mappa samma inloggningsuppgifter till andra inloggningar.
Andra typer av EKM-enhetsspecifik autentisering
För EKM-moduler som använder autentisering annat än Windows eller användarnamns- och lösenordskombinationer måste du utföra autentisering oberoende av SQL Server.
Kryptering och dekryptering av en EKM-enhet
Använd följande funktioner och funktioner för att kryptera och dekryptera data med symmetriska och asymmetriska nycklar:
| Funktion eller egenskap | Hänvisning |
|---|---|
| Kryptering av symmetrisk nyckel | CREATE SYMMETRIC KEY (Transact-SQL) |
| Asymmetrisk nyckelkryptering | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Databasnyckelkryptering med EKM-nycklar
SQL Server kan använda EKM-nycklar för att kryptera andra nycklar i en databas. Du kan skapa och använda både symmetriska och asymmetriska nycklar på en EKM-enhet. Du kan kryptera inbyggda (icke-EKM) symmetriska nycklar med EKM-asymmetriska nycklar.
Följande exempel skapar en symmetrisk databasnyckel och krypterar den genom att använda en nyckel på en EKM-modul.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
För mer information om databas- och servernycklar i SQL Server, se SQL Server- och databaskrypteringsnycklar (Database Engine).
Anmärkning
Du kan inte kryptera en EKM-nyckel med en annan EKM-nyckel.
SQL Server stöder inte att signera moduler med asymmetriska nycklar som genererats från en EKM-leverantör.
Relaterat innehåll
- serverkonfigurationsalternativ för EKM-leverantör
- Aktivera TDE på SQL Server med hjälp av EKM
- Utökningsbar nyckelhantering med Hjälp av Azure Key Vault (SQL Server)
- SQL Server och databaskrypteringsnycklar (Database Engine)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers (Transact-SQL)
- sys.dm_cryptographic_provider_sessions (Transact-SQL)
- sys.dm_cryptographic_provider_properties (Transact-SQL)
- sys.dm_cryptographic_provider_algorithms (Transact-SQL)
- sys.dm_cryptographic_provider_keys (Transact-SQL)
- sys.credentials (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- Säkerhetskopiera och återställa KRYPTERINGSnycklar för SQL Server Reporting Services (SSRS)
- Ta bort och återskapa krypteringsnycklar (Configuration Manager)
- Lägga till och ta bort krypteringsnycklar för utskalningsdistribution
- Säkerhetskopiera en tjänstehuvudnyckel
- Återställ en tjänstehuvudnyckel
- Skapa en databashuvudnyckel
- Säkerhetskopiera en databashuvudnyckel
- Återställ en databasens huvudnyckel
- Skapa identiska symmetriska nycklar på två servrar