Проблемы
Рассмотрим следующий сценарий.
-
Вы создаете симметричный ключ из поставщика расширенного управления ключами в Microsoft SQL Server 2008, Microsoft SQL Server 2012 или Microsoft SQL Server 2008 R2.
-
Шифрование некоторых данных в базе данных с помощью этого симметричного ключа.
-
Вы перенесете данные в другую базу данных.
-
Вы пытаетесь создать симметричный ключ в новой базе данных с помощью того же поставщика РАСШИРЕНных ключей. Однако зашифрованные данные в новой базе данных нельзя расшифровать, так как в созданном симметричном ключе есть номер GUID, а этот номер GUID отличается от исходного симметричного ключа, который зашифровал данные в исходной базе данных.
-
Для повторного создания симметричного ключа с помощью того же идентификатора GUID, что и у исходного симметричного ключа, вы можете использовать параметр IDENTITY_VALUE, чтобы указать фразу идентификации, которая использовалась для исходного симметричного ключа.
В этом случае появляется сообщение об ошибке, подобное следующему:
MSG 102, уровень 15, состояние 1, строка 3 с неверным синтаксисом рядом с "IDENTITY_VALUE"
Решение
Сведения о накопительном пакете обновления
Накопительное обновление 6 для SQL Server 2012
Исправление для этой проблемы впервые выпущено в накопительном обновлении 6. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2012, щелкните следующий номер статьи базы знаний Майкрософт:
2728897 Накопительный пакет обновления 6 для SQL Server 2012Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2012. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2692828 Сборки SQL Server 2012, выпущенные после выпуска SQL Server 2012
Накопительное обновление 11 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 11. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:
2812683 Накопительный пакет обновления 11 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Накопительное обновление 9 для SQL Server 2008 с пакетом обновления 3 (SP3)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 9. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 3 (SP3), щелкните следующий номер статьи базы знаний Майкрософт:
2799883 Накопительный пакет обновления 9 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 3 (SP3). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008
Накопительное обновление 4 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 4. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 2 (SP2), щелкните следующий номер статьи базы знаний Майкрософт:
2777358 Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск пакета обновления 2 (SP2) для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Обходное решение
Чтобы обойти эту ошибку, расшифровать данные перед ее миграцией во вторую базу данных. После того как вы перенесете данные в другую базу данных, используйте новый ключ для шифрования данных.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".