KB2300689 — FIX: восстановление резервной копии базы данных на другом экземпляре SQL Server невозможно, если отключить прозрачный способ шифрования данных перед созданием резервной копии в SQL Server 2008 или SQL Server 2008 R2

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 как один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в исправленный выпуск SQL Server 2008 или SQL Server 2008 R2.

Проблемы

Рассмотрим следующий сценарий.

  • Вы используете прозрачное шифрование данных в базе данных SQL Server 2008 или Microsoft SQL Server 2008 R2.

  • Вы отключите шифрование для базы данных.

  • Создавайте резервные копии базы данных сразу же после отключения шифрования.

  • Вы пытаетесь восстановить базу данных на другом экземпляре SQL Server с помощью резервной копии.

В этом случае операция восстановления завершается сбоем, и появляется сообщение об ошибке, подобное следующему:

System. Data. SqlClient. SqlError: не удалось выполнить инициализацию файла "<>_log имя базы данных". Дополнительные сведения смотрите в журналах ошибок. (Microsoft.SqlServer.Smo)

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

System. Data. SqlClient. SqlError: не удается найти серверный сертификат с отпечатком "0xCB62FF76463A6BF86E8F769B541BA6483AFC2FF2". (Microsoft.SqlServer.Smo)

Решение

Сведения о накопительном пакете обновления

SQL Server 2008 с пакетом обновления 1

Исправление для этой проблемы впервые выпущено в накопительном обновлении 10 для SQL Server 2008 с пакетом обновления 1 (SP1). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2279604 Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

970365 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 1 (SP1) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) к установке SQL Server 2008 с пакетом обновления 1. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 с пакетом обновления 2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2008 с пакетом обновления 2. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2289254 Накопительное обновление 1 для SQL Server 2008 с пакетом обновления 2Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 (SP2) для SQL Server 2008

SQL Server 2008 R2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 4. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:

2345451 Накопительный пакет обновления 4 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Действия по воспроизведению проблемы

  1. Создание главного ключа. Ниже приведен пример кода, который создает главный ключ:

    use masterCreate Master Key encryption by password = 'Password01!';go
  2. Создание или получение сертификата, защищенного основным ключом. Ниже приведен пример кода, который создает сертификат, защищенный основным ключом.

    create certificate cert_testDB_encryptDEK  authorization dbowith subject='Certificate to encrypt the DEK of testDB'
  3. Создание новой базы данных, создание ключа шифрования базы данных, а затем защита ключа с помощью сертификата. Ниже приведен пример кода, который создает новую базу данных, которая создает ключ шифрования базы данных, а затем защищает ключ с помощью сертификата.

    create Database testDBuse testDBCreate database encryption key with algorithm=AES_128encryption by server certificate cert_testDB_encryptDEK  
  4. Настройте для базы данных использование шифрования. Ниже приведен пример кода, который задает использование шифрования для базы данных.

    Alter database testDB set encryption on 
  5. Отключите шифрование для базы данных. Ниже приведен пример кода, который отключает шифрование для базы данных.

    Alter database testDB set encryption off 
  6. Создайте резервную копию базы данных, а затем восстановите ее в другой версии SQL Server.

Ссылки

Дополнительные сведения о прозрачных Шифрованиях данных (TDE) можно найти на веб-сайте Microsoft Developer Network (MSDN) по адресу:

Общие сведения о TDEЧтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:

935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемЧтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:

822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerЧтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:

824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?

Что повлияло на вашу оценку?

Добавите что-нибудь? Это необязательно

Спасибо за ваш отзыв!

×