Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этой статье описывается, как включить прозрачное шифрование данных (TDE) в SQL Server для защиты ключа шифрования базы данных с помощью асимметричного ключа, хранящегося в модуле расширенного управления ключами (EKM) с помощью Transact-SQL.
При использовании TDE хранилище всей базы данных шифруется с помощью симметричного ключа, который называется ключом шифрования базы данных. Ключ шифрования базы данных также можно защитить с помощью сертификата, который защищен главным ключом базы данных (DMK) master базы данных. Дополнительные сведения о защите ключа шифрования базы данных с помощью dmK см. в разделе "Прозрачное шифрование данных" (TDE). Сведения о настройке TDE при запуске SQL Server на виртуальной машине Azure см. в статье "Расширяемое управление ключами" с помощью Azure Key Vault (SQL Server). Сведения о настройке TDE (Transparent Data Encryption) с помощью ключа в хранилище ключей Azure см. раздел Использование соединителя SQL Server с компонентами шифрования SQL.
Ограничения
Для создания ключа шифрования базы данных и шифрования в базе данных необходимо быть привилегированным пользователем (например, системным администратором). Модуль EKM должен иметь возможность пройти проверку подлинности этого пользователя.
При запуске ядро СУБД должно открыть базу данных. Необходимо создать учетные данные, прошедшие проверку подлинности с помощью EKM, и добавить его в имя входа, основанное на асимметричном ключе. Пользователи не могут войти с помощью этого имени входа, но ядро СУБД может пройти проверку подлинности с помощью устройства EKM.
Если асимметричный ключ, хранящийся в модуле EKM, теряется, база данных не может быть открыта SQL Server. Если поставщик расширенного управления ключами позволяет создать резервную копию асимметричного ключа, создайте его резервную копию и сохраните ее в надежном месте.
Параметры и параметры, необходимые поставщику EKM, могут отличаться от того, что указано в следующем примере кода. За дополнительной информацией обратитесь к своему поставщику EKM.
Разрешения
В этой статье используются следующие разрешения:
Чтобы изменить параметр конфигурации и запустить инструкцию
RECONFIGURE, необходимо предоставитьALTER SETTINGSразрешение на уровне сервера. РазрешениеALTER SETTINGSнеявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.Требуется
ALTER ANY CREDENTIALразрешение.Требуется
ALTER ANY LOGINразрешение.Требуется
CREATE ASYMMETRIC KEYразрешение.Требуется
CONTROLразрешение на шифрование базы данных.
Использование Transact-SQL
Скопируйте файлы, предоставленные поставщиком EKM, в соответствующее расположение на компьютере SQL Server. В этом примере мы используем папку
C:\EKM_Files.Установите сертификаты на компьютер согласно требованиям вашего EKM-поставщика.
Примечание.
SQL Server не предоставляет поставщик EKM. Каждый поставщик EKM может иметь разные процедуры установки, настройки и авторизации пользователей. Чтобы выполнить этот шаг, обратитесь к документации по поставщику EKM.
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На стандартной панели выберите пункт Создать запрос.
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.
-- Enable advanced options. EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXECUTE 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 = '<password>' 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 = '<secret>' 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 AdventureWorks2022; 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 AdventureWorks2022 SET ENCRYPTION ON; GO
Связанный контент
- Прозрачное шифрование данных для базы данных SQL, SQL Управляемый экземпляр и Azure Synapse Analytics
- sp_configure (Transact-SQL)
- СОЗДАНИЕ КРИПТОГРАФИЧЕСКОГО ПРОВАЙДЕРА (Transact-SQL)
- СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- CREATE LOGIN (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ИЗМЕНИТЬ ВХОД (Transact-SQL)
- Изменить базу данных (Transact-SQL)