Включение прозрачного шифрования данных с использованием расширенного управления ключами
В этом разделе описывается, как включить прозрачное шифрование данных (TDE) в SQL Server 2014 г. для защиты ключа шифрования базы данных с помощью асимметричного ключа, хранящегося в модуле расширенного управления ключами (EKM) с помощью Transact-SQL.
При использовании TDE хранилище всей базы данных шифруется с помощью симметричного ключа, который называется ключом шифрования базы данных. Ключ шифрования базы данных можно также защитить с помощью сертификата, защищенного главным ключом базы данных master. Дополнительные сведения о защите ключа шифрования базы данных с помощью ключа master базы данных см. в разделе Прозрачное шифрование данных (TDE). Сведения о настройке TDE при выполнении SQL Server на виртуальной машине Azure см. в статье Расширенное управление ключами с помощью Azure Key Vault (SQL Server).
В этом разделе
Перед началом работы
Включение использования расширенного управления ключами для TDE при помощи Transact-SQL
Перед началом
Ограничения
Для создания ключа шифрования базы данных и шифрования в базе данных необходимо быть привилегированным пользователем (например, системным администратором). Этот пользователь должен также проходить проверку подлинности в модуле расширенного управления ключами.
При запуске компонент Database Engine должен открыть базу данных. Чтобы это сделать, необходимо создать учетные данные, которые будут проверяться по расширенному управлению ключами, и добавить их к имени входа, основанном на асимметричном ключе. Пользователи не могут войти с помощью этого имени входа, но компонент Database Engine сможет пройти проверку подлинности с помощью устройства расширенного управления ключами.
Если асимметричный ключ, хранящийся в поставщике расширенного управления ключами, утерян, то SQL Serverне сможет открыть базу данных. Если поставщик расширенного управления ключами позволяет создать резервную копию асимметричного ключа, необходимо создать его резервную копию и хранить ее в надежном месте.
Параметры и настройки, которые требуются поставщиком расширенного управления ключами, могут отличаться от приведенного ниже примера кода. Дополнительные сведения см. в документации поставщика расширенного управления ключами.
Безопасность
Разрешения
В этом разделе используются следующие разрешения.
Для изменения параметра конфигурации и выполнения инструкции RECONFIGURE должно быть предоставлено разрешение ALTER SETTINGS на уровне сервера. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin .
Требуется разрешение ALTER ANY CREDENTIAL.
Необходимо разрешение ALTER ANY LOGIN.
Требуется разрешение CREATE ASYMMETRIC KEY.
Требуется разрешение CONTROL в базе данных для ее шифрования.
Использование Transact-SQL
Включение TDE с расширенным управлением ключами
Скопируйте файлы поставщика расширенного управления ключами в соответствующую папку на компьютере SQL Server . В этом примере используется папка C:\EKM .
Установите на компьютер сертификаты в соответствии с требованиями поставщика расширенного управления ключами.
Примечание
SQL Server не поддерживает поставщик расширенного управления ключами. Каждый поставщик расширенного управления ключами может иметь разные процедуры установки, настройки и авторизации пользователей. Проконсультируйтесь с документацией поставщика расширенного управления ключами, чтобы завершить этот шаг.
В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
-- Enable advanced options. sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GO -- Enable EKM provider sp_configure 'EKM provider enabled', 1 ; GO RECONFIGURE ; GO -- Create a cryptographic provider, which we have chosen to call "EKM_Prov," based on an EKM provider CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll' ; GO -- Create a credential that will be used by system administrators. CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = 'q*gtev$0u#D1v' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ; GO -- Add the credential to a high privileged user such as your -- own domain login in the format [DOMAIN\login]. ALTER LOGIN Contoso\Mary ADD CREDENTIAL sa_ekm_tde_cred ; GO -- create an asymmetric key stored inside the EKM provider USE master ; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key' ; GO -- Create a credential that will be used by the Database Engine. CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2' , SECRET = 'jeksi84&sLksi01@s' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ; -- Add a login used by TDE, and add the new credential to the login. CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key ; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred ; GO -- Create the database encryption key that will be used for TDE. USE AdventureWorks2012 ; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key ; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE AdventureWorks2012 SET ENCRYPTION ON ; GO
Дополнительные сведения см. в следующих разделах: