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