Корпорация Майкрософт распространяет исправления 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
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Действия по воспроизведению проблемы
-
Создание главного ключа. Ниже приведен пример кода, который создает главный ключ:
use masterCreate Master Key encryption by password = 'Password01!';go
-
Создание или получение сертификата, защищенного основным ключом. Ниже приведен пример кода, который создает сертификат, защищенный основным ключом.
create certificate cert_testDB_encryptDEK authorization dbowith subject='Certificate to encrypt the DEK of testDB'
-
Создание новой базы данных, создание ключа шифрования базы данных, а затем защита ключа с помощью сертификата. Ниже приведен пример кода, который создает новую базу данных, которая создает ключ шифрования базы данных, а затем защищает ключ с помощью сертификата.
create Database testDBuse testDBCreate database encryption key with algorithm=AES_128encryption by server certificate cert_testDB_encryptDEK
-
Настройте для базы данных использование шифрования. Ниже приведен пример кода, который задает использование шифрования для базы данных.
Alter database testDB set encryption on
-
Отключите шифрование для базы данных. Ниже приведен пример кода, который отключает шифрование для базы данных.
Alter database testDB set encryption off
-
Создайте резервную копию базы данных, а затем восстановите ее в другой версии SQL Server.
Ссылки
Дополнительные сведения о прозрачных Шифрованиях данных (TDE) можно найти на веб-сайте Microsoft Developer Network (MSDN) по адресу:
Общие сведения о TDEЧтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемЧтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerЧтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт