Перенос данных в столбцы или из них с помощью Always Encrypted с использованием мастера импорта и экспорта SQL Server
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр 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 4.6.1 или более поздних версий.
- Чтобы включить функцию Always Encrypted, применяемую для подключения, в окне свойств подключения задайте параметру
Column Encryption Setting
значениеEnabled
. Чтобы отключить функцию Always Encrypted, применяемую для подключения, задайте параметруColumn Encryption Setting
значениеDisabled
. Дополнительные сведения см. в статье Подключение к SQL Server с помощью поставщика данных .NET Framework для SQL Server и Включение Always Encrypted для запросов приложений.
- Поставщик данных .NET Framework для ODBC
- Установите драйвер Microsoft ODBC Driver 13.1 или более поздних версий.
- Чтобы включить функцию Always Encrypted, применяемую для подключения, в окне свойств подключения задайте параметру
Column Encryption
значениеEnabled
. Чтобы отключить функцию Always Encrypted, применяемую для подключения, задайте параметруColumn Encryption
значениеDisabled
. Дополнительные сведения см. в статьях Подключение к SQL Server с помощью драйвера ODBC для SQL Server и Включение Always Encrypted в приложении ODBC.
- Чтобы включить функцию Always Encrypted, применяемую для подключения, в окне свойств подключения задайте параметру
- Установите драйвер Microsoft ODBC Driver 13.1 или более поздних версий.
Разрешения для шифрования и расшифровки данных во время миграции
Чтобы зашифровать или расшифровать данные, хранящиеся в базе данных-источнике или целевой базе данных SQL Server, требуются разрешения VIEW ANY COLUMN MASTER KEY DEFINITION и VIEW ANY COLUMN ENCRYPTION KEY DEFINITION в целевой базе данных. Вам также требуются разрешения для хранилища ключей на доступ к главному ключу столбца и на его использование. Дополнительные сведения о разрешениях для хранилища ключей, необходимых, чтобы выполнять операции управления ключами, см. в статье Создание и хранение главных ключей столбцов для Always Encrypted в разделе о нужном хранилище.
Следующие шаги
- Выполнение запросов к столбцам с помощью Always Encrypted с использованием SQL Server Management Studio
- Разработка приложений с помощью Always Encrypted