CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

Создает ключ шифрования, используемый для прозрачного шифрования базы данных. Дополнительные сведения о прозрачном шифровании баз данных см. в разделе основные сведения о прозрачном шифровании данных (TDE).

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
    Определяет алгоритм шифрования, который используется для ключа шифрования.

  • ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
    Имя шифратора, используемого для шифрования ключа шифрования базы данных.

  • ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
    Указывает имя асимметричного ключа, используемого для шифрования ключа шифрования базы данных.

Замечания

Прежде чем зашифровать базу данных с помощью Прозрачного шифрования базы данных (TDE), необходимо создать ключ шифрования базы данных. При выполнении прозрачного шифрования базы данных вся база данных шифруется на уровне файлов без каких-либо специальных изменений кода. Сертификат или асимметричный ключ, который используется для шифрования ключа шифрования базы данных, должен находиться в системной базе данных master.

Инструкции шифрования базы данных разрешены только для пользовательских баз данных.

Ключ шифрования базы данных нельзя экспортировать из базы данных. Он доступен только для системы, пользователей, имеющих разрешение на отладку на сервере, и пользователей, имеющих доступ к сертификатам, с использованием которых выполняется шифрование и расшифровка ключа шифрования базы данных.

Нет необходимости повторно создавать ключ шифрования базы данных, когда меняется владелец базы данных (dbo).

Разрешения

Необходимо разрешение CONTROL на базу данных и разрешение VIEW DEFINITION на сертификат или асимметричный ключ, используемый при шифровании ключа шифрования базы данных.

Примеры

Дополнительные примеры использования прозрачного шифрования данных см. в разделах основные сведения о прозрачном шифровании данных (TDE) и Как включить прозрачное шифрование данных с использованием расширенного управления ключами.

А. Создание ключа шифрования базы данных

В следующем примере создается ключ шифрования базы данных с помощью алгоритма AES_256 и защищается закрытый ключ с помощью сертификата с именем MyServerCert.

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