SSIS: только что начал получать " ключ, недопустимый для использования в указанном состоянии."ошибка в моем запланированном пакете SSIS

у меня есть 2 запланированных задания на моей машине SQL Server 2005, которые планируется запускать каждое утро (около 2:00). Эти работы работали нормально (в основном) в течение многих лет, и хотя у меня было несколько икоты, что мне пришлось работать через эту проблему, полностью ставит меня в тупик.

два дня назад один из моих пакетов начал сообщать о следующей ошибке:

Executed as user: [Service Acount]. ...n 9.00.4035.00 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
     Started:  1:15:01 AM  Error: 2012-10-17 01:15:03.98
     Code: 0xC0016016
     Source:
       Description: Failed to decrypt protected XML node "DTS:Password" 
       with error 0x8009000B "Key not valid for use in specified state.". 
       You may not be authorized to access this information. This error 
       occurs when there is a cryptographic error. Verify that the 
       correct key is available.  End Error  Error: 2012-10-17 01:15:03.99
     Code: 0xC0016016
     Source:
       Description: Failed to decrypt protected XML node "DTS:Password" 
       with error 0x8009000B "Key not valid for use in specified state.". 
       You may not be authorized to access this information. This error 
       occurs when there is a cryptographic error. Verify that the 
       correct key is available.  End Error  Error: 2012-10-17 01:15:04.01
     Code: 0xC0016016     
Source:       
Description: Failed to ...  The package execution fa...  The step failed.

Это, кажется, общая проблема, однако, ни одна из рекомендаций, которые я нашел либо применитесь к моему сценарию, и мой экземпляр, похоже, не соответствует большинству других случаев, когда это происходит. Вот важные детали, касающиеся моей реализации.

  • этот пакет экспортирует данные из системы iSeries в SQL Server 2005 таблицы данных.
  • этот процесс работает успешно, но продолжает сбой на одном, специфический экспорт таблицы. На самом деле, он работает без каких-либо проблем за 2 часа до смерти. После проверки всех связанных свойств с этот шаг, я вижу, что в этом шаге нет ничего особенного. по сравнению с другими шагами экспорта таблицы, кроме экспорта таблицы / столбца отображения.
  • пакета ProtectionLevel установлено значение DontSaveSensitive и iSeries учетные данные хранятся в файле конфигурации, к которому обращается SQL Server.
  • я могу выполнить неудачный шаг на моей машине, в заявках. В любом случае, это не так. работайте на сервере, хотя сервер использует точно такие же учетные данные.
  • As Я уже говорил, У меня два пакета. Они фактически одно и то же, за исключением один экспортирует данные из одной базы данных iSeries, а другой экспортирует данные, которые имеют почти одинаковую структуру из другой базы данных iSeries. Первый пакет не имеет никаких проблем, даже если он использует те же учетные данные iSeries.
  • чтобы быть ясным, ничего на моем сервере не изменилось за несколько месяцев (что я знаю.) Этот все началось только вчера. утро.

любые советы или мысли были бы чрезвычайно полезны. Этот экспорт чрезвычайно важен, и многие пользователи / работники полагаются на эти данные для своей повседневной работы.

6 ответов


Ну, я ненавижу публиковать такой ответ, но я решил проблему.

причина короткого ответа, почему у меня была эта проблема, заключается в том, что одно из полей в таблице данных было неправильно определено. В этом случае он был объявлен как decimal (11, 3) и это должно было быть decimal (13, 3). Я не испытывал этой проблемы, пока значение не было опубликовано в таблицу, которая не соответствовала , если их советы не помогают, поймите, что проблема может быть не связана с сообщением об ошибке SSIS и тройной проверкой всего, что связано с точкой неудача.


Я не мог опубликовать изображение в комментариях, поэтому разместил его в качестве ответа.

при попытке импортировать пакет в SQL Server, как только вы щелкните правой кнопкой мыши и сделать "импорт пакета" вы получите следующее окно.

enter image description here

нажмите на прямоугольник справа от окна. Это даст вам возможность изменить уровень защиты пакета. Измените его на "не сохранять конфиденциальные" и попробуйте запустить пакет. Слово предостережения, для этого потребуется удалить существующий пакет и повторно импортировать его. Таким образом, вы можете попробовать его на другой машине, прежде чем коснуться существующей конфигурации.


для меня это был просто пароль для диспетчера соединений в SSIS, который не был сохранен. Введите пароль - > OK-> закрыть файл dtsx и снова открыть. Ошибка исчезла.


столкнулся с тем же сообщением об ошибке в SQL Server 2012. Для меня перезапуск SQL Server Management Studio решил проблему. Вероятно, проблема была вызвана изменением пароля домена несколько дней назад, когда SSMS была открыта. Если вы столкнулись с подобной проблемой, и она не уходит с простым перезапуском, убедитесь, что вы проверяете Control Panel\User Accounts\Credential Manager за счет кэширования информации и/или попытайтесь перезагрузить.


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

Я удалил задачу FTP и использовал задачу файловой системы, чтобы скопировать файл в то же место через сетевой ресурс на ftp-сервере и избежать использования протокола ftp.

Я также смог сохранить пакет в файловой системе вместо хранилища sql server, и он работал нормально.

надеюсь это поможет вам!


откройте пакет dtsx, затем перейдите к свойствам set ProtectionLevel EncryptSensitiveWithPassword и введите пароль . Подключите задание SQL sever формы пакета с тем же паролем.

см.http://support.microsoft.com/kb/918760 и http://www.mssqltips.com/sqlservertip/2091/securing-your-ssis-packages-using-package-protection-level/