Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Мастер Always Encrypted представляет собой эффективное средство, позволяющее задать нужную конфигурацию Always Encrypted для выбранных столбцов базы данных. В зависимости от текущей конфигурации и необходимой целевой конфигурации мастер может зашифровать столбец, расшифровать его (снять шифрование) или зашифровать его повторно (например, с помощью нового ключа шифрования столбца или типа шифрования, который отличается от текущего типа, настроенного для столбца). В рамках одного запуска мастера можно настроить несколько столбцов.
Мастер позволяет шифровать столбцы с помощью существующих ключей шифрования, создавать новый ключ шифрования столбцов или новый ключ шифрования столбцов и новый главный ключ столбца.
Оценка мастера позволяет оценить таблицы в выбранной базе данных или выбрать определенные таблицы для анализа. Он определяет столбцы, подходящие для шифрования, и выделяет несовместимые с Always Encrypted из-за их типа данных, ограничений и других факторов. Мастер предоставляет подробный список ограничений для каждого поля, объясняя, почему определенные столбцы не могут быть зашифрованы.
При настройке базы данных с безопасным анклавами можно выполнять криптографические операции без перемещения данных из базы данных. Мастер удаляет все зависимости, блокирующие изменение схемы столбца для шифрования. Он выдает шифрование на месте для каждого столбца с помощью анклава в ядре СУБД. После завершения шифрования мастер повторно создает зависимости. Дополнительные сведения об Always Encrypted с безопасными анклавами см. в статье Always Encrypted с безопасными анклавами.
Если база данных не настроена с безопасным анклавам, мастер позволяет включить безопасный анклав. Предположим, что вы решили не включить безопасный анклава или вы не используете ключи с поддержкой анклава. В этом случае мастер перемещает данные из базы данных и выполняет криптографические операции в процессе SSMS. Мастер создает новую таблицу (или таблицы) с требуемой конфигурацией шифрования в базе данных, загружает все данные из исходных таблиц, выполняет запрошенные криптографические операции, отправляет данные в новые таблицы, а затем заменяет одну или несколько исходных таблиц новыми таблицами.
Совет
Использование шифрования на месте с помощью Always Encrypted с безопасными анклавами, если они доступны в вашей среде, могут значительно сократить время и надежность криптографических операций.
Выполнение криптографических операций может занимать много времени. В течение этого времени база данных недоступна для записи транзакций. PowerShell — это рекомендуемое средство для криптографических операций в больших таблицах. См. статью "Настройка шифрования столбцов с помощью Always Encrypted с помощью PowerShell " или "Настройка шифрования столбцов на месте" с помощью PowerShell.
Дополнительные сведения о настройке Always Encrypted с помощью мастера и его использовании в клиентском приложении см. в следующих учебниках по базе данных SQL Azure.
Дополнительные сведения о ключах Always Encrypted см. в разделе Общие сведения об управлении ключами для Always Encrypted.
Дополнительные сведения о типах шифрования, поддерживаемых в Always Encrypted, см. в разделе Выбор детерминированного или случайного шифрования.
Разрешения
Для выполнения криптографических операций с помощью мастера необходимо иметь VIEW ANY COLUMN MASTER KEY DEFINITION разрешения и VIEW ANY COLUMN ENCRYPTION KEY DEFINITION разрешения. Вам также нужны разрешения хранилища ключей для создания, доступа и использования главного ключа столбца. Подробные сведения о разрешениях хранилища ключей см. в статье "Создание и хранение главных ключей столбцов для Always Encrypted" или раздел, соответствующий хранилищу ключей.
Открытие мастера Always Encrypted
Мастер можно запустить на трех разных уровнях.
- На уровне базы данных, если требуется зашифровать несколько столбцов в разных таблицах.
- На уровне таблицы, если требуется зашифровать несколько столбцов в одной таблице.
- На уровне столбца, если требуется зашифровать один конкретный столбец.
Подключитесь к SQL Server с помощью компонента обозреватель объектов SQL Server Management Studio.
Чтобы зашифровать следующие элементы:
— Несколько столбцов, расположенных в разных таблицах в базе данных, щелкните правой кнопкой мыши базу данных, наведите указатель на задачи и выберите мастер Always Encrypted.
— Несколько столбцов в одной таблице, перейдите к таблице, щелкните ее правой кнопкой мыши и выберите мастер Always Encrypted.
— Отдельный столбец, перейдите к столбцу, щелкните его правой кнопкой мыши и выберите мастер Always Encrypted.
Страница выбора столбцов
На этой странице вы выбираете столбцы для шифрования, повторного шифрования или расшифровки и определения целевой конфигурации шифрования.
Для шифрования столбца с открытым текстом (незашифрованный столбец) выберите тип шифрования (Детерминированный или Случайный) и ключ шифрования.
Выберите нужный тип шифрования и ключ, чтобы изменить тип шифрования или повернуть (изменить) ключ шифрования столбца для уже зашифрованного столбца.
Если вы хотите, чтобы мастер зашифровал или повторно зашифровал один или несколько столбцов с помощью нового ключа шифрования столбца, выберите ключ, содержащий (New) в имени. Мастер создает ключ.
Чтобы расшифровать зашифрованный столбец, выберите Обычный текст для типа шифрования.
Совет
Если вы хотите использовать шифрование на месте, и вы используете существующие ключи, убедитесь, что вы выбрали ключи с поддержкой анклава, аннотированные с поддержкой анклава.
Мастер не поддерживает криптографические операции с темпоральными таблицами и таблицами в памяти. Можно создать пустые темпоральные таблицы или таблицы в памяти с помощью Transact-SQL и вставить данные через приложение.
Страница оценки столбцов
Выбранные таблицы и столбцы оцениваются для соответствия для Always Encrypted или Always Encrypted с безопасными анклавами. Оценка начинается автоматически, показывая строку состояния и список таблиц и столбцов, которые в настоящее время оцениваются, которые выполняются и которые необходимо выполнить. Оценка проверяет, соответствует ли столбец таблицы требованиям always Encrypted или Always Encrypted с безопасными анклавами на основе ограничений.
Если столбец не соответствует требованиям, оценка отображает состояние "Ошибка" для этого столбца. Выбор ссылки "Сообщения" позволяет получить подробные сведения о том, почему этот конкретный столбец не может быть зашифрован.
Чтобы зашифровать переданные столбцы оценки, установите флажок. Мастер автоматически пропускает все столбцы, которые не передают оценку. Кроме того, можно экспортировать результаты в CSV-файл или текстовый файл, нажав кнопку "Отчет".
Страница "Конфигурация главного ключа"
Если вы выбрали автоматически созданный ключ шифрования столбцов для любого столбца на предыдущей странице, необходимо выбрать существующий главный ключ столбца или настроить новый главный ключ столбца, который шифрует ключ шифрования столбца на этой странице.
При настройке нового главного ключа столбца можно выбрать существующий ключ в Хранилище сертификатов Windows или Azure Key Vault и создать только объект метаданных для ключа в базе данных или создать ключ и объект метаданных, описывающий ключ в базе данных.
Чтобы использовать шифрование на месте, выберите разрешить вычисления анклава для нового главного ключа столбца. Выбор этого флажка разрешен только в том случае, если база данных настроена с безопасным анклавом.
Дополнительные сведения о создании и хранении главных ключей столбцов в Хранилище сертификатов Windows, Azure Key Vault или других хранилищах ключей см. в статье Создание и хранение главных ключей столбцов для always Encrypted или Управление ключами для Always Encrypted с помощью безопасных анклавов.
Совет
Мастер позволяет просматривать и создавать ключи только в Хранилище сертификатов Windows и Azure Key Vault. Он также автоматически создает имена новых ключей и объектов метаданных базы данных, описывающих их. Предположим, вам потребуется больше контроля над подготовкой ключей (и другие варианты для хранилища ключей, содержащего главный ключ столбца). В этом случае можно использовать диалоговые окна "Новый главный ключ столбца" и "Новый ключ шифрования столбцов" для создания ключей, а затем запустить мастер и выбрать созданные ключи. См. раздел "Подготовка главных ключей столбцов" с помощью диалогового окна "Новый главный ключ столбца" или "Подготовка ключей шифрования столбцов" и "Подготовка ключей шифрования столбцов" с помощью диалогового окна "Новый ключ шифрования столбцов".
Страница "Параметры шифрования на месте"
Если вы настроили безопасный анклава в базе данных и используете ключи с поддержкой анклава, эта страница позволяет указать параметры аттестации анклава, необходимые для шифрования на месте. Если вы не хотите использовать шифрование на месте, отмените выбор шифрования на месте, чтобы продолжить шифрование на стороне клиента. Мы рекомендуем оставить этот флажок включенным, чтобы мастер смог использовать шифрование на месте.
Дополнительные сведения об аттестации анклава см. в разделе "Настройка аттестации для Always Encrypted с помощью Аттестация Azure
Страница "Параметры запуска"
Мастер поддерживает два подхода к настройке целевой конфигурации шифрования: в сети и в автономном режиме.
При автономном подходе целевые таблицы и все таблицы, связанные с целевыми таблицами (например, любые таблицы, с которыми связаны внешние ключи), недоступны для записи транзакций в течение всей операции. Семантика ограничений внешнего ключа (CHECK или NOCHECK) всегда сохраняется при использовании оффлайн-подхода.
При использовании интерактивного подхода операция копирования, шифрования, расшифровки или повторного шифрования данных выполняется постепенно. Приложения могут считывать и записывать данные из целевых таблиц во время операции перемещения данных, за исключением последней итерации, длительность которой ограничена параметром Максимальное время простоя. Чтобы обнаруживать и обрабатывать изменения, которые приложения могут вносить во время копирования данных, мастер включает функцию отслеживания изменений в целевой базе данных. Из-за этого онлайн-подход, скорее всего, будет потреблять больше ресурсов на стороне базы данных, чем автономный подход. Операция может также занять больше времени с онлайн-подходом, особенно если в базе данных идет работа с высокой нагрузкой на запись. Сетевой подход можно использовать для шифрования одной таблицы за раз, а таблица должна иметь первичный ключ. По умолчанию ограничения внешнего ключа повторно создаются с параметром NOCHECK, чтобы свести к минимуму влияние на приложения. Вы можете принудительно сохранить семантику ограничений внешнего ключа, включив параметр Keep check foreign key constraints.
Ниже приведены рекомендации по выбору между автономными и онлайн-подходами.
Используйте автономный подход:
- Чтобы свести к минимуму длительность операции.
- Для шифрования и расшифровки и повторного шифрования столбцов в нескольких таблицах одновременно.
- Если целевая таблица не имеет первичного ключа.
Используйте онлайн-подход:
- Чтобы свести к минимуму время простоя или недоступность базы данных в приложениях.
После шифрования
Снимите кэш плана для всех пакетов и хранимых процедур, которые обращаются к таблице для обновления сведений о шифровании параметров.
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
Замечание
Если вы не удалите план для затронутого запроса из кэша, первое выполнение запроса после шифрования может завершиться неудачно.
Используйте ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE или DBCC FREEPROCCACHE для тщательного очищения кэша планов, так как это может привести к временному снижению производительности запросов. Чтобы свести к минимуму негативное влияние очистки кэша, можно выборочно удалить планы только затронутых запросов.
Вызовите sp_refresh_parameter_encryption, чтобы обновить метаданные для параметров каждого модуля (хранимая процедура, функция, представление, триггер), которые сохраняются в sys.parameters и могут быть недействительными путем шифрования столбцов.