Megosztás a következőn keresztül:


ADATBÁZISTITKOSÍTÁSI KULCS LÉTREHOZÁSA (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) Transparent Data Encryption (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

WITH ALGORITHM = { 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.

TITKOSÍTÁS KISZOLGÁLÓTANÚSÍTVÁNY ENCRYPTOR_NAME
Megadja az adatbázis-titkosítási kulcs titkosításához használt titkosító nevét.

TITKOSÍTÁS KISZOLGÁLÓI ASZIMMETRIKUS KULCS ENCRYPTOR_NAME Az adatbázis titkosításához használt aszimmetrikus kulcs nevét adja meg. 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

Control engedélyt igényel az adatbázishoz, és a VIEW DEFINITION engedélyt az adatbázis titkosításához használt tanúsítványon vagy aszimmetrikus kulcson.

Examples

A TDE használatával kapcsolatos további példákért lásd: Transparent Data Encryption (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.