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.
Applies to:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Skapar en krypteringsnyckel för transparent kryptering av en databas. Mer information om transparent data encryption (TDE) finns i Transparent Data Encryption (TDE).
Transact-SQL syntaxkonventioner
Syntax
-- Syntax for SQL Server
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER
{
CERTIFICATE Encryptor_Name |
ASYMMETRIC KEY Encryptor_Name
}
[ ; ]
-- Syntax for Parallel Data Warehouse
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
[ ; ]
Arguments
MED ALGORITM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Anger krypteringsalgoritmen för krypteringsnyckeln.
Varning
Från och med SQL Server 2016 är alla algoritmer förutom AES_128, AES_192 och AES_256 inaktuella. Om du vill använda äldre algoritmer (rekommenderas inte) måste du ange databasen till databaskompatibilitetsnivå 120 eller lägre.
KRYPTERING EFTER SERVERCERTIFIKAT Encryptor_Name
Anger namnet på krypteringsnyckeln som används för att kryptera databaskrypteringsnyckeln.
KRYPTERING EFTER SERVER ASYMMETRISK NYCKEL Encryptor_Name Anger namnet på den asymmetriska nyckel som används för att kryptera databaskrypteringsnyckeln. För att kryptera databaskrypteringsnyckeln med en asymmetrisk nyckel måste den asymmetriska nyckeln finnas på en utökningsbar nyckelhanteringsprovider.
Anmärkningar
En databaskrypteringsnyckel krävs innan en databas kan krypteras med transparent datakryptering (TDE). När en databas är transparent krypterad krypteras hela databasen på filnivå, utan några särskilda kodändringar. Certifikatet eller den asymmetriska nyckeln som krypterar databaskrypteringsnyckeln måste finnas i systemdatabasen master .
Certifikat eller asymmetriska nycklar som används för TDE är begränsade till en privat nyckelstorlek på 3 072 bitar.
Databaskrypteringsuttryck tillåts endast i användardatabaser.
Det går inte att exportera databaskrypteringsnyckeln från databasen. Den är endast tillgänglig för systemet, för användare som har felsökningsbehörighet på servern och för användare som har åtkomst till de certifikat som krypterar och dekrypterar databaskrypteringsnyckeln.
Databaskrypteringsnyckeln behöver inte återskapas när en databasägare (dbo) ändras.
En databaskrypteringsnyckel skapas automatiskt för en SQL Database-databas. Du behöver inte skapa en nyckel med hjälp av -instruktionen CREATE DATABASE ENCRYPTION KEY .
behörigheter
Kräver KONTROLL-behörighet för databasen och VIEW DEFINITION-behörighet för certifikatet eller den asymmetriska nyckel som används för att kryptera databaskrypteringsnyckeln.
Exempel
Ytterligare exempel med TDE finns i Transparent Data Encryption (TDE), Enable TDE on SQL Server Using EKM och Extensible Key Management Using Azure Key Vault (SQL Server).
A. Skapa en databaskrypteringsnyckel
I följande exempel skapas en databaskrypteringsnyckel med hjälp av algoritmen AES_256 och den privata nyckeln skyddas med ett certifikat med namnet MyServerCert.
USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
B. Återställa en TDE-krypterad databas till en annan instans
Om du vill återställa en TDE-krypterad databas till en annan SQL Server instans måste du först importera certifikatet som skyddar databaskrypteringsnyckeln. Säkerhetskopiera certifikatet och dess privata nyckel från källservern och skapa sedan certifikatet på målinstansen innan du återställer databasen.
Säkerhetskopiera certifikatet på källservern:
-- On the SOURCE server
USE master;
GO
BACKUP CERTIFICATE MyServerCert
TO FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
ENCRYPTION BY PASSWORD = '<strong_password>'
);
GO
På målservern skapar du certifikatet från säkerhetskopieringsfilerna och återställer sedan databasen:
-- On the TARGET server
USE master;
GO
CREATE CERTIFICATE MyServerCert
FROM FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
DECRYPTION BY PASSWORD = '<strong_password>'
);
GO
-- Now you can restore the TDE-encrypted database
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\Backup\AdventureWorks2022.bak'
WITH MOVE 'AdventureWorks2022_Data' TO 'D:\Data\AdventureWorks2022.mdf',
MOVE 'AdventureWorks2022_Log' TO 'D:\Data\AdventureWorks2022.ldf';
GO
Viktigt!
Certifikatet måste ha samma namn och skapas från samma säkerhetskopieringsfiler. Om certifikatet inte matchar misslyckas återställningen med ett krypteringsnyckelfel.
Relaterat innehåll
- Transparent Data Encryption (TDE)
- SQL Server kryptering
- SQL Server och databaskrypteringsnycklar (Database Engine)
- Krypteringshierarki
- ALTER DATABASE SET-alternativ (Transact-SQL)
- ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
- DROP DATABASE ENCRYPTION KEY (Transact-SQL)
- sys.dm_database_encryption_keys (Transact-SQL)
- BACKUP CERTIFICATE (Transact-SQL)
- SKAPA CERTIFIKAT (Transact-SQL)