Я закончил тем, что использовал библиотеку от Codeplex .
Простая настройка и еще более простое исполнение. Отличная библиотека!
Я использовал Kleopatra для генерации ключа pgp.
В SQL Server я запускаю пакет служб SSIS, который должен расшифровывать файлы, используя указанный выше ключ. Пакеты служб SSIS запускаются ImportFiles
с идентификатором пользователя Windows, NetworkSQLUser
поскольку для получения файла ему необходимо связаться с другим сервером.
Когда я впервые запустил пакет, я получил следующую ошибку:
Выполняется от имени пользователя: VS2 \ NetworkSQLUser. gpg: зашифрован с помощью ключа ELG, идентификатор XXXXXXXX gpg: не удалось расшифровать: нет секретного ключа Утилита Microsoft (R) SQL Server Execute Package Version 11.0.2100.60 для 64-разрядной версии Copyright (C) Microsoft Corporation. Все права защищены. Начато: 15:50:29 вечера Ошибка: 2014-01-23 15: 50: 29.95 Код: 0xC0029151 Источник: Расшифровать файл транзакции Процесс выполнения Описание задачи: При выполнении "C: \ Program Files (x86) \ GNU \ GnuPG \ gpg2 .exe "" --batch --passphrase-fd 0 --decrypt-files \ vs3 \ FTP \ Outgoing \ 20140122_001.TRN.gpg "at" ", код завершения процесса был" 2 ", а ожидаемый был" 0 ", Ошибка завершения DTExec: выполнение пакета вернуло DTSER_FAILURE (1). Начало: 3:50:29. Окончание: 15:50:29. Прошло: 0,782 секунды. Не удалось выполнить пакет. Шаг не удался.
Я прочитал статью, в которой говорится, что для решения этой проблемы сделайте следующее:
учетная запись службы, под которой я запускал агент SQL, не имела сертификата, зарегистрированного под этим ИД пользователя. Я импортировал сертификат в Kleopatra только для идентификатора пользователя для разработки, в который входил, а не для учетной записи службы. Я просто импортировал сертификат в профиль учетной записи службы, и тогда все заработало.
Я добавил идентификатор пользователя NetworkSQLUser
для ключа в Kleopatra, но я не уверен на 100%, что это правильно!
Затем я снова запустил пакет и получил следующую ошибку:
Выполняется от имени пользователя: VS2 \ NetworkSQLUser. GPG: брелок
c:/gnupg/secring.gpg' created gpg: keyring
c: /gnupg/pubring.gpg 'создан gpg: зашифрован с помощью ключа ELG, идентификатор XXXXXXXX gpg: не удалось расшифровать: нет секретного ключа Утилита Microsoft (R) SQL Server Execute Package Version 11.0.2100.60 для 64-разрядных систем Copyright (C) Microsoft Corporation, Все права защищены. Начато: 5:17:16 вечера Ошибка: 2014-01-23 17: 17: 17.40 Код: 0xC0029151 Источник: Расшифровать файл транзакции Процесс выполнения Описание задачи: При выполнении "C: \ Program Files (x86) \ GNU \ GnuPG \ gpg2 .exe "" --batch --passphrase-fd 0 --decrypt-files \ vs3 \ FTP \ Outgoing \ 20140122_001.TRN.gpg "at" ", код завершения процесса был" 2 ", а ожидаемый был" 0 ", Ошибка завершения DTExec: выполнение пакета вернуло DTSER_FAILURE (1). Начало работы: 17:17:16. Окончание: 17:17:17. Прошло: 0,735 секунды. Не удалось выполнить пакет. Шаг не удался.
Я также попытался запустить пакет dtsx из папки GnuPG.
Я в растерянности относительно того, куда идти отсюда.
Если я пропустил какую-либо информацию (мой первый раз с SSIS, PGP и сертификатами), то дайте мне знать.
Я закончил тем, что использовал библиотеку от Codeplex .
Простая настройка и еще более простое исполнение. Отличная библиотека!