Microsoft разпространява корекциите на 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 Service Pack 1
Корекцията за този проблем е издадена за първи път в сборна актуализация 10 за SQL Server 2008 Service Pack 1. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2279604 Сборен пакет за актуализация 10 за SQL Server 2008 Service Pack 1Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
970365 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 1 Актуалните корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 1 към инсталация на SQL Server 2008 Service Pack 1. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.
SQL Server 2008 Service Pack 2
Корекцията за този проблем е издадена за първи път в сборна актуализация 1 за SQL Server 2008 Service Pack 2. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2289254 Сборна актуализация 1 за SQL Server 2008 Service Pack 2Note Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 2
SQL Server 2008 R2
Корекцията за този проблем е издадена за първи път в кумулативна актуализация 4. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2345451 Сборен пакет за актуализация 4 за SQL Server 2008 R2 Забележка: Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция за SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
981356 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Стъпки за възпроизвеждане на проблема
Създайте главен ключ. По-долу е даден примерен код, който създава главен ключ:
use master Create Master Key encryption by password = 'Password01!'; goСъздайте или получете сертификат, защитен с главен ключ. По-долу е даден примерен код, който създава сертификат, защитен с главен ключ:
create certificate cert_testDB_encryptDEK authorization dbo with subject='Certificate to encrypt the DEK of testDB'Създайте нова база данни, създайте ключ за шифроване на база данни и след това защитете ключа от сертификата. По-долу е даден пример за код, който създава нова база данни, която създава ключ за шифроване на базата данни и след това защитава ключа с помощта на сертификат:
create Database testDB use testDB Create database encryption key with algorithm=AES_128 encryption by server certificate cert_testDB_encryptDEKНастройте базата данни да използва шифроване. По-долу е даден пример за код, който задава базата данни да използва шифроване:
Alter database testDB set encryption onЗабраняване на шифроването за базата данни. По-долу е даден пример за код, който забранява шифроването на база данни:
Alter database testDB set encryption offАрхивирайте базата данни и след това възстановете архивното копие на друга версия на SQL Server.
Справки
За повече информация относно прозрачното шифроване на данни (TDE) посетете следния уеб сайт на Мрежата за разработчици на Microsoft (MSDN):
Обща информация за TDE За повече информация относно модела на постъпково обслужване за SQL Server щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
935897 От екипа на SQL Server се предлага модел на постъпково обслужване, който да предоставя актуални корекции за съобщени проблеми
За допълнителна информация относно схемата за именуване на актуализациите на SQL Server щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
822499 Нова схема за именуване на пакетите за актуализация на софтуера на Microsoft SQL Server За повече информация относно терминологията за софтуерни актуализации щракнете върху следния номер на статия в базата знания на Microsoft:
824684 Описание на стандартната терминология, която се използва за описание на софтуерните актуализации на Microsoft