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


Занятие 5. (Необязательно) Шифрование базы данных с помощью TDE

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

В этом уроке предполагается, что вы уже выполнили следующие действия.

  • У вас есть учетная запись служба хранилища Azure.

  • Вы создали контейнер в учетной записи хранения Azure.

  • Вы создали политику в контейнере с правами на чтение, запись и список. Вы также создали ключ SAS.

  • Вы создали учетные данные SQL Server на исходном компьютере.

  • Вы создали базу данных, выполнив действия, описанные на занятии 4.

Если вы хотите зашифровать базу данных, выполните следующие действия.

  1. На исходном компьютере измените и выполните следующие инструкции в окне запроса:

    
    -- Create a master key and a server certificate   
    USE master   
    GO   
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySQLKey01';   
    GO   
    CREATE CERTIFICATE MySQLCert WITH SUBJECT = 'SQL - Azure Storage Certification'   
    GO   
    -- Create a backup of the server certificate in the master database.   
    -- Store TDS certificates in the source machine locally.   
    BACKUP CERTIFICATE MySQLCert   
    TO FILE = 'C:\certs\MySQLCert.CER'   
    WITH PRIVATE KEY   
    (   
    FILE = 'C:\certs\MySQLPrivateKeyFile.PVK',   
    ENCRYPTION BY PASSWORD = 'MySQLKey01'   
    );  
    
    
  2. Затем зашифруйте новую базу данных на исходном компьютере, выполнив следующие действия:

    
    -- Switch to the new database.   
    -- Create a database encryption key, that is protected by the server certificate in the master database.    
    -- Alter the new database to encrypt the database using TDE.   
    USE TestDB1;   
    GO   
    -- Encrypt your database   
    CREATE DATABASE ENCRYPTION KEY   
    WITH ALGORITHM = AES_256   
    ENCRYPTION BY SERVER CERTIFICATE MySQLCert   
    GO   
    
    ALTER DATABASE TestDB1   
    SET ENCRYPTION ON   
    GO  
    
    

Если вы хотите узнать состояние шифрования базы данных и связанные с ним ключи шифрования базы данных, выполните следующую инструкцию:

  
SELECT * FROM sys.dm_database_encryption_keys;   
GO  
  

Подробные сведения об операторах Transact-SQL, используемых в этом занятии, см. в статьях CREATE DATABASE (SQL Server Transact-SQL), ALTER DATABASE (Transact-SQL), CREATE MASTER KEY (Transact-SQL), CREATE CERTIFICATE (Transact-SQL), и sys.dm_database_encryption_keys (Transact-SQL).

Следующий урок:

Занятие 6. Перенос базы данных с исходного компьютера на целевой компьютер в Azure