Настройка шифрования столбцов на месте с помощью пакета DAC

Область применения:SQL ServerAzure SQL Database

Пакет приложения уровня данных (DAC), также известный как DACPAC, является переносимой единицей развертывания базы данных SQL Server, определяющей все объекты SQL Server, включая таблицы и столбцы внутри таблиц. При публикации DACPAC в базу данных (при обновлении базы данных с помощью DACPAC) схема целевой базы данных обновляется в соответствии со схемой в DACPAC. DACPAC можно опубликовать с помощью мастера обновления приложения уровня данных в SQL Server Management Studio, PowerShell или sqlpackage.

В этой статье рассматриваются особые замечания относительно обновления базы данных, когда DACPAC или (и) целевая база данных содержит столбцы, защищенные с помощью Always Encrypted. Если схема шифрования столбца в DACPAC отличается от схемы шифрования существующего столбца в целевой базе данных, при публикации DACPAC происходит шифрование, расшифровка или повторное шифрование хранящихся в столбце данных. Подробные сведения приведены в представленной ниже таблице.

Condition Действие
Столбец зашифрован в DACPAC и не зашифрован в базе данных. Данные в столбце не будут зашифрованы.
Столбец зашифрован в DACPAC и не зашифрован в базе данных. Данные в столбце будут расшифрованы (для столбца будет отменено шифрование).
Столбец зашифрован в DACPAC и базе данных, но столбец в DACPAC использует другой тип шифрования и (или) другой ключ шифрования столбца, чем соответствующий столбец в базе данных. Данные в столбце будет расшифрованы и повторно зашифрованы в соответствии с конфигурацией шифрования в DACPAC.

Развертывание пакета DAC может также привести к созданию или удалению объектов метаданных для главных ключей столбцов или ключей шифрования столбцов в Always Encrypted.

Заметка

Если вы используете SQL Server 2019 (15.x) или более поздней версии или Базу данных SQL Azure, а экземпляр ИЛИ базу данных SQL Server настроены с безопасным анклавом, вы можете выполнять криптографические операции на месте без перемещения данных из базы данных. См. статью Настройка шифрования столбцов на месте с помощью Always Encrypted с безопасными анклавами. Чтобы активировать шифрование на месте с помощью пакета DAC, пользователю необходимо указать свойства EnclaveAttestationProtocol и EnclaveAttestationUrl .

Разрешения для публикации пакета DAC при настройке Always Encrypted с безопасными анклавами

Чтобы опубликовать пакет DAC, если Always Encrypted с безопасными анклавами настроены в DACPAC или /и в целевой базе данных, может потребоваться некоторые или все указанные ниже разрешения в зависимости от различий между схемой в DACPAC и схеме целевой базы данных.

ALTER ANY COLUMN MASTER KEY, ALTER ANY COLUMN ENCRYPTION KEY, VIEW ANY COLUMN MASTER KEY DEFINITION, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

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

Далее

См. также