CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

A következőre vonatkozik: :SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Létrehoz egy titkosítási kulcsot az adatbázisok transzparens titkosításához. A transparent data encryption (TDE) transzparens adattitkosítás (TDE) című témakörben talál további információt.

Transact-SQL szintaxis konvenciók

Szemantika

-- 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

ALGORITMUSSAL = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Megadja a titkosítási kulcs titkosítási algoritmusát.

Figyelmeztetés

2016 SQL Server kezdve a AES_128, AES_192 és AES_256 kivételével minden algoritmus elavult. A régebbi algoritmusok használatához (nem ajánlott) az adatbázist 120-es vagy annál alacsonyabb adatbázis-kompatibilitási szintre kell állítania.

SZERVER CERTIFICATE Encryptor_Name TITKOSÍTÁS
Megadja az adatbázis-titkosítási kulcs titkosításához használt titkosító nevét.

SZERVER ASYMMETRIC KEY TITKOSÍTÁS Encryptor_Name Megadja az aszimmetrikus kulcs nevét, amelyet az adatbázis titkosítási kulcsának titkosításához használnak. Az adatbázis titkosítási kulcsának aszimmetrikus kulccsal való titkosításához az aszimmetrikus kulcsnak egy bővíthető kulcskezelő szolgáltatón kell lennie.

Megjegyzések

Adatbázis-titkosítási kulcsra van szükség ahhoz, hogy egy adatbázis transzparens adattitkosítással (TDE) titkosítható legyen. Ha egy adatbázis transzparensen van titkosítva, a rendszer a teljes adatbázist fájlszinten titkosítja, speciális kódmódosítások nélkül. Az adatbázis-titkosítási kulcsot titkosító tanúsítványnak vagy aszimmetrikus kulcsnak a master rendszeradatbázisban kell lennie.

A TDE-hez használt tanúsítványok vagy aszimmetrikus kulcsok 3072 bites titkos kulcsméretre korlátozódnak.

Az adatbázis-titkosítási utasítások csak felhasználói adatbázisokban engedélyezettek.

Az adatbázis titkosítási kulcsa nem exportálható az adatbázisból. Csak a rendszer, a kiszolgálón hibakeresési engedélyekkel rendelkező felhasználók, valamint azoknak a felhasználóknak érhető el, akik hozzáférnek az adatbázis titkosítási kulcsát titkosító és visszafejtő tanúsítványokhoz.

Az adatbázis-titkosítási kulcsot nem kell újragenerálni az adatbázis tulajdonosának (dbo) módosításakor.

A rendszer automatikusan létrehoz egy adatbázistitkosítási kulcsot egy SQL Database-adatbázishoz. Nem kell kulcsot létrehoznia az CREATE DATABASE ENCRYPTION KEY utasítással.

Jogosultságok

Megköveteli az adatbázis CONTROL engedélyét, és VIEW a DEFINITION engedélyt a tanúsítvány vagy aszimmetrikus kulcs titkosításához használva.

Examples

A TDE használatával kapcsolatos további példákért lásd: transzparens adattitkosítás (TDE), Enable TDE a SQL Server EKM használatával és Az Azure Key Vault (SQL Server) használatával.

A. Adatbázistitkosítási kulcs létrehozása

Az alábbi példa egy adatbázis-titkosítási kulcsot hoz létre az AES_256 algoritmus használatával, és a titkos kulcsot egy nevesített MyServerCerttanúsítvánnyal védi.

USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

B. TDE által titkosított adatbázis visszaállítása másik példányra

Ha egy TDE által titkosított adatbázist egy másik SQL Server-példányra szeretne visszaállítani, először importálnia kell az adatbázis titkosítási kulcsát védő tanúsítványt. Készítsen biztonsági másolatot a tanúsítványról és a titkos kulcsáról a forráskiszolgálóról, majd hozza létre a tanúsítványt a célpéldányon az adatbázis visszaállítása előtt.

A forráskiszolgálón biztonsági másolatot készít a tanúsítványról:

-- 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

A célkiszolgálón hozza létre a tanúsítványt a biztonsági mentési fájlokból, majd állítsa vissza az adatbázist:

-- 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

Fontos

A tanúsítványnak ugyanazzal a névvel kell rendelkeznie, és ugyanabból a biztonsági mentési fájlból kell létrehoznia. Ha a tanúsítvány nem egyezik, a visszaállítás titkosítási kulcshiba miatt meghiúsul.