Перенос данных в столбцы или из них с помощью Always Encrypted с использованием мастера импорта и экспорта SQL Server

Применяется к:SQL ServerAzure SQL DatabaseAzure, управляемому экземпляру SQL Azure

Мастер импорта и экспорта SQL Server позволяет копировать данные из исходного расположения в целевое. В этом документе описывается использование мастера импорта и экспорта SQL Server, если исходным и (или) целевым расположением является база данных SQL Server, содержащая столбцы, защищенные с помощью Always Encrypted.

Сценарии миграции

С помощью мастера импорта и экспорта SQL Server можно реализовать следующие сценарии для переноса данных в зашифрованные столбцы или из них.

Шифрование данных в виде открытого текста при миграции

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

Чтобы мастер импорта и экспорта SQL Server мог шифровать данные, необходимо включить функцию Always Encrypted для подключения к целевой базе данных и получить доступ к ключам, защищающим данные в столбцах этой базы данных. Дополнительные сведения см. в разделах Включение и отключение функции Always Encrypted, применяемой для подключения к базе данных и Разрешения для шифрования или расшифровки данных во время миграции.

Расшифровка зашифрованных данных при миграции

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

Чтобы мастер импорта и экспорта SQL Server мог расшифровывать данные, необходимо включить функцию Always Encrypted для подключения к базе данных-источнику и получить доступ к ключам, защищающим данные в столбцах этой базы данных. Дополнительные сведения см. в разделах Включение и отключение функции Always Encrypted, применяемой для подключения к базе данных и Разрешения для шифрования или расшифровки данных во время миграции.

Повторное шифрование данных при миграции

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

Чтобы мастер импорта и экспорта SQL Server мог шифровать и расшифровывать данные, необходимо включить функцию Always Encrypted для подключений к базе данных-источнику и целевой базе данных и получить доступ к ключам, защищающим данные в столбцах этих баз данных. Дополнительные сведения см. в разделах Включение и отключение функции Always Encrypted, применяемой для подключения к базе данных и Разрешения для шифрования или расшифровки данных во время миграции.

Поддержка зашифрованных данных во время миграции

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

В этом сценарии для подключения к базе-данных источнику или целевой базе данных SQL Server можно использовать любой поставщик данных, поддерживающий SQL Server. Если для подключения к целевой базе данных используется поставщик, который поддерживает Always Encrypted, необходимо отключить функцию Always Encrypted. Дополнительные сведения см. в разделе Включение и отключение функции Always Encrypted, применяемой для подключения к базе данных.

Кроме того, параметру ALLOW_ENCRYPTED_VALUE_MODIFICATIONS участника базы данных, используемого мастером импорта и экспорта SQL Server для подключения к целевой базе данных, должно быть задано значение ON. Этот параметр отключает проверки шифрованных метаданных на сервере в операциях массового копирования, что позволяет мастеру массово вставлять зашифрованные данные в целевую базу данных и при этом не расшифровывать их. Дополнительные сведения см. в статье Массовая загрузка зашифрованных данных в столбцы, защищенные с помощью Always Encrypted.

Включение и отключение функции Always Encrypted, применяемой для подключения к базе данных

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

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

Следующие поставщики данных в мастере импорта и экспорта SQL Server поддерживают Always Encrypted.

  • Поставщик данных .NET Framework для SQL Server
  • Поставщик данных .NET Framework для ODBC

Разрешения для шифрования и расшифровки данных во время миграции

Чтобы зашифровать или расшифровать данные, хранящиеся в базе данных-источнике или целевой базе данных SQL Server, требуются разрешения VIEW ANY COLUMN MASTER KEY DEFINITION и VIEW ANY COLUMN ENCRYPTION KEY DEFINITION в целевой базе данных. Вам также требуются разрешения для хранилища ключей на доступ к главному ключу столбца и на его использование. Дополнительные сведения о разрешениях для хранилища ключей, необходимых, чтобы выполнять операции управления ключами, см. в статье Создание и хранение главных ключей столбцов для Always Encrypted в разделе о нужном хранилище.

Далее

См. также