Aracılığıyla paylaş


VERITABANı ŞIFRELEME ANAHTARı OLUŞTURMA (Transact-SQL)

Applies to:SQL ServerAzure SQL Managed InstanceAnalytics Platform Sistemi (PDW)

Bir veritabanını saydam bir şekilde şifrelemek için bir şifreleme anahtarı oluşturur. transparent data encryption (TDE) hakkında daha fazla bilgi için bkz. Transparent Data Encryption (TDE).

Transact-SQL söz dizimi kuralları

Sözdizimi

-- 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   
[ ; ]  

Argümanlar

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Şifreleme anahtarı için şifreleme algoritmasını belirtir.

Uyarı

SQL Server 2016'dan başlayarak AES_128, AES_192 ve AES_256 dışındaki tüm algoritmalar kullanım dışı bırakılmıştır. Eski algoritmaları kullanmak için (önerilmez) veritabanını 120 veya daha düşük bir veritabanı uyumluluk düzeyine ayarlamanız gerekir.

SUNUCU SERTIFIKA ENCRYPTOR_NAME GÖRE ŞIFRELEME
Veritabanı şifreleme anahtarını şifrelemek için kullanılan şifrelayıcının adını belirtir.

SUNUCUYA GÖRE ŞIFRELEME ASIMETRIK ANAHTAR Encryptor_Name Veritabanı şifreleme anahtarını şifrelemek için kullanılan asimetrik anahtarın adını belirtir. Veritabanı şifreleme anahtarını asimetrik anahtarla şifrelemek için, asimetrik anahtarın genişletilebilir bir anahtar yönetimi sağlayıcısında bulunması gerekir.

Açıklamalar

Bir veritabanının saydam veri şifrelemesi (TDE) kullanılarak şifrelenmeden önce veritabanı şifreleme anahtarı gereklidir. Bir veritabanı saydam bir şekilde şifrelendiğinde, özel kod değişiklikleri olmadan tüm veritabanı dosya düzeyinde şifrelenir. Veritabanı şifreleme anahtarını şifreleyen sertifika veya asimetrik anahtar sistem veritabanında bulunmalıdır master .

TDE için kullanılan sertifikalar veya asimetrik anahtarlar 3072 bitlik özel anahtar boyutuyla sınırlıdır.

Veritabanı şifreleme deyimlerine yalnızca kullanıcı veritabanlarında izin verilir.

Veritabanı şifreleme anahtarı veritabanından dışarı aktarılamaz. Yalnızca sistemde, sunucuda hata ayıklama izinlerine sahip olan kullanıcılara ve veritabanı şifreleme anahtarını şifreleyen ve şifresini çözen sertifikalara erişimi olan kullanıcılar tarafından kullanılabilir.

Veritabanı sahibi (dbo) değiştirildiğinde veritabanı şifreleme anahtarının yeniden üretilmesi gerekmez.

SQL Veritabanı veritabanı için otomatik olarak bir veritabanı şifreleme anahtarı oluşturulur. deyimini CREATE DATABASE ENCRYPTION KEY kullanarak anahtar oluşturmanız gerekmez.

İzinler

Veritabanı şifreleme anahtarını şifrelemek için kullanılan sertifika veya asimetrik anahtar üzerinde veritabanında CONTROL izni ve VIEW DEFINITION izni gerektirir.

Örnekler

TDE'yi kullanan ek örnekler için bkz. Transparent Data Encryption (TDE), EKM ve Azure Key Vault Kullanarak Genişletilebilir Anahtar Yönetimi(SQL Server) kullanarak SQL Server TDE'yi açma.

A. Veritabanı şifreleme anahtarı oluşturma

Aşağıdaki örnek algoritmayı AES_256 kullanarak bir veritabanı şifreleme anahtarı oluşturur ve adlı MyServerCertbir sertifikayla özel anahtarı korur.

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

B. TDE ile şifrelenmiş veritabanını farklı bir örneğe geri yükleme

TDE ile şifrelenmiş veritabanını farklı bir SQL Server örneğine geri yüklemek için önce veritabanı şifreleme anahtarını koruyan sertifikayı içeri aktarmanız gerekir. Sertifikayı ve özel anahtarını kaynak sunucudan yedekleyin, ardından veritabanını geri yüklemeden önce hedef örnekte sertifikayı oluşturun.

Kaynak sunucuda sertifikayı yedekleyin:

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

Hedef sunucuda, yedekleme dosyalarından sertifikayı oluşturun ve veritabanını geri yükleyin:

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

Önemli

Sertifika aynı ada sahip olmalı ve aynı yedekleme dosyalarından oluşturulmalıdır. Sertifika eşleşmezse, geri yükleme işlemi bir şifreleme anahtarı hatasıyla başarısız olur.