Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Создает ключ шифрования для прозрачного шифрования базы данных. Дополнительные сведения о transparent data encryption (TDE) см. в Transparent Data Encryption (TDE).
Transact-SQL соглашения о синтаксисе
Синтаксис
-- 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
[ ; ]
Аргументы
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Задает алгоритм шифрования для ключа шифрования.
Предупреждение
Начиная с SQL Server 2016, все алгоритмы, кроме AES_128, AES_192 и AES_256 не рекомендуется. Чтобы использовать старые алгоритмы (что не рекомендуется), необходимо установить уровень совместимости базы данных 120 или ниже.
ШИФРОВАНИЕ ПО СЕРТИФИКАТУ СЕРВЕРА ENCRYPTOR_NAME
Указывает имя шифратора, используемого для шифрования ключа шифрования базы данных.
ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name Указывает имя асимметричного ключа, используемого для шифрования ключа шифрования базы данных. Чтобы зашифровать ключ шифрования базы данных асимметричным ключом, асимметричный ключ должен находиться в расширяемом поставщике управления ключами.
Замечания
Ключ шифрования базы данных требуется, прежде чем база данных может быть зашифрована с помощью прозрачного шифрования данных (TDE). При выполнении прозрачного шифрования базы данных вся база данных шифруется на уровне файлов без каких-либо специальных изменений кода. Сертификат или асимметричный ключ, который шифрует ключ шифрования базы данных, должен находиться в системной master базе данных.
Сертификаты асимметричных ключей, используемых для прозрачного шифрования данных, размер закрытого ключа ограничен 3072 битами.
Инструкции шифрования базы данных разрешены только для пользовательских баз данных.
Ключ шифрования базы данных не может быть экспортирован из базы данных. Она доступна только системе, пользователям с разрешениями отладки на сервере и пользователям, имеющим доступ к сертификатам, которые шифруют и расшифровывают ключ шифрования базы данных.
Ключ шифрования базы данных не должен быть повторно создан при изменении владельца базы данных (dbo).
Ключ шифрования базы данных автоматически создается для базы данных в Базе данных SQL. Вам не нужно создавать ключ с помощью инструкции CREATE DATABASE ENCRYPTION KEY .
Разрешения
Требуется разрешение CONTROL на базу данных и разрешение VIEW DEFINITION на сертификат или асимметричный ключ, используемый при шифровании ключа шифрования базы данных.
Примеры
Дополнительные примеры использования TDE см. в разделе Transparent Data Encryption (TDE), Enable TDE на SQL Server using EKM и Extensible Key Management Using Azure Key Vault (SQL Server).
А. Создание ключа шифрования базы данных
В следующем примере создается ключ шифрования базы данных с помощью алгоритма AES_256 и защищается закрытый ключ с помощью сертификата с именем MyServerCert.
USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
В. Восстановление зашифрованной базы данных TDE в другом экземпляре
Чтобы восстановить базу данных с шифрованием TDE в другом экземпляре SQL Server, необходимо сначала импортировать сертификат, который защищает ключ шифрования базы данных. Создайте сертификат и его закрытый ключ с исходного сервера, а затем создайте сертификат на целевом экземпляре перед восстановлением базы данных.
На исходном сервере создайте резервную копию сертификата:
-- 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
На целевом сервере создайте сертификат из файлов резервной копии, а затем восстановите базу данных:
-- 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
Это важно
Сертификат должен иметь то же имя и создаваться из одних и того же файла резервного копирования. Если сертификат не соответствует, восстановление завершается ошибкой ключа шифрования.
Связанный контент
- Transparent Data Encryption (TDE)
- шифрование SQL Server
- SQL Server и ключи шифрования базы данных (Database Engine)
- Иерархия средств шифрования
- ALTER DATABASE SET Options (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)