Поделиться через


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

В этом разделе описано, как включить прозрачное шифрование данных (TDE) в SQL Server 2012, чтобы защитить ключ шифрования базы данных с помощью асимметричного ключа, хранящегося на модуле расширенного управления ключами (EKM) при помощи Transact-SQL.

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

В этом разделе

  • Перед началом работы

    Ограничения

    Безопасность

  • Включение использования расширенного управления ключами для TDE при помощи Transact-SQL

Перед началом работы

Ограничения

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

  • При запуске компонента Ядро СУБД он должен открыть базу данных. Чтобы это сделать, необходимо создать учетные данные, которые будут проверяться по расширенному управлению ключами, и добавить их к имени входа, основанном на асимметричном ключе. Пользователи не смогут войти в систему с этим именем входа, но компонент Ядро СУБД сможет пройти проверку подлинности на устройстве расширенного управления ключами.

  • Если асимметричный ключ, хранящийся в поставщике расширенного управления ключами, утерян, то SQL Server не сможет открыть базу данных. Если поставщик расширенного управления ключами позволяет создать резервную копию асимметричного ключа, необходимо создать его резервную копию и хранить ее в надежном месте.

  • Параметры и настройки, которые требуются поставщиком расширенного управления ключами, могут отличаться от приведенного ниже примера кода. Дополнительные сведения см. в документации поставщика расширенного управления ключами.

Безопасность

Разрешения

В этом разделе используются следующие разрешения.

  • Для изменения параметра конфигурации и выполнения инструкции RECONFIGURE должно быть предоставлено разрешение ALTER SETTINGS на уровне сервера. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.

  • Требуется разрешение ALTER ANY CREDENTIAL.

  • Требуется разрешение ALTER ANY LOGIN.

  • Требуется разрешение CREATE ASYMMETRIC KEY.

  • Требуется разрешение CONTROL в базе данных для ее шифрования.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование Transact-SQL

Включение TDE с расширенным управлением ключами

  1. Скопируйте файлы поставщика расширенного управления ключами в соответствующую папку на компьютере SQL Server. В этом примере используется папка C:\EKM.

  2. Установите на компьютер сертификаты в соответствии с требованиями поставщика расширенного управления ключами.

    ПримечаниеПримечание

    SQL Server не поддерживает поставщик расширенного управления ключами. Каждый поставщик расширенного управления ключами может иметь разные процедуры установки, настройки и авторизации пользователей. Проконсультируйтесь с документацией поставщика расширенного управления ключами, чтобы завершить этот шаг.

  3. В обозревателе объектов установите соединение с экземпляром компонента Ядро СУБД.

  4. На стандартной панели выберите пункт Создать запрос.

  5. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.

    -- 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 system administrator credential to a high privileged user such as your own domain login in the format  [DOMAIN\login].
    ALTER LOGIN UCBERKELEY\shcooper
    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
    

Дополнительные сведения см. в следующих разделах:

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Основные понятия

Расширенное управление ключами с помощью хранилища ключей Azure (SQL Server)