Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Applies to:SQL Server
Azure SQL Managed Instance
Analytics 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.
İlgili içerik
- Transparent Data Encryption (TDE)
- SQL Server Encryption
- SQL Server ve Veritabanı Şifreleme Anahtarları (Database Engine)
- Şifreleme Hiyerarşisi
- ALTER DATABASE SET Seçenekleri (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)
- CREATE CERTIFICATE (Transact-SQL)