Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: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, могут отличаться от указанных в следующем примере кода. За дополнительной информацией обратитесь к своему поставщику EKM.
Разрешения
Вам потребуются следующие разрешения:
Чтобы изменить параметр конфигурации и запустить инструкцию
RECONFIGURE, требуетсяALTER SETTINGSразрешение на уровне сервера. Предопределенные роли сервера sysadmin и serveradmin неявно обладают этимALTER SETTINGSразрешением.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_2048, 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)
- СОЗДАТЬ КЛЮЧ ШИФРОВАНИЯ БАЗЫ ДАННЫХ (Transact-SQL)
- ИЗМЕНИТЬ ВХОД (Transact-SQL)
- Изменить базу данных (Transact-SQL)