将 PGP 密钥导入 SSIS 的 Windows 用户

将 PGP 密钥导入 SSIS 的 Windows 用户

我已经使用 Kleopatra 生成了 pgp 密钥。

在 SQL Server 中,我正在运行一个 SSIS 包,该包应使用上述密钥解密文件。SSIS 包以ImportFilesWindows 用户身份运行NetworkSQLUser,因为它必须与另一台服务器通信才能获取文件。

当我第一次运行该包时出现以下错误:

以用户身份执行:VS2\NetworkSQLUser。 gpg:使用 ELG 密钥加密,ID XXXXXXXX gpg:解密失败:无密钥 Microsoft (R) SQL Server 执行包实用程序版本 11.0.2100.60(适用于 64 位)版权所有 (C) Microsoft Corporation。保留所有权利。 开始时间:下午 3: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”时,进程退出代码为“2”,而预期代码为“0”。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 3:50:29 完成时间:下午 3:50:29 耗时:0.782 秒。包执行失败。步骤失败。

我读过文章为了解决这个问题,请执行以下操作:

我运行 SQL Agent 时所用的服务帐户没有在该用户 ID 下注册证书。我只将证书导入 Kleopatra 中用于我登录的开发用户 ID,而没有用于服务帐户。我只是将证书导入到服务帐户配置文件中,然后一切就正常了。

我将用户 ID 添加NetworkSQLUser到 Kleopatra 中的密钥中,但我不是 100%确定它是正确的!

然后我再次运行该包并收到以下错误:

以用户身份执行:VS2\NetworkSQLUser。gpg:密钥环c:/gnupg/secring.gpg' created gpg: keyringc:/gnupg/pubring.gpg' 创建 gpg:使用 ELG 密钥加密,ID XXXXXXXX gpg:解密失败:无密钥 Microsoft (R) SQL Server 执行包实用程序版本 11.0.2100.60(适用于 64 位)版权所有 (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”时,进程退出代码为“2”,而预期代码为“0”。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 5:17:16 完成时间:下午 5:17:17 耗时:0.735 秒。包执行失败。步骤失败。

我也尝试过从 GnuPG 文件夹运行 dtsx 包。

我不知道接下来该去哪儿。

如果我遗漏了任何信息(我第一次使用 SSIS、PGP 和证书),请告诉我。

答案1

我最终使用了代码库

设置简单,执行更简单。很棒的图书馆!

相关内容