ssis gpg加密问题

ssis gpg encryption issues

我有一个 SSIS 包,它使用执行进程任务来使用 gpg 加密文件。这是我正在使用的参数,它在 visual studio 中运行得非常好。 但是,当我将此包部署到 SSISDB 并 运行 它时,它显示 "C:\Program Files (x86)\GnuPG directory does not exist"。

Executable: C:\Program Files (x86)\GnuPG\bin\gpg.exe
Arguments : --batch --passphrase test -o "D:\test\file1.csv.gpg" -c "D:\test\file1.csv"
Working Directory : C:\Program Files (x86)\GnuPG

我也试过了

Working Directory : D:\test (Or any other directory path)

当我从 SSISDB 运行 打包时 - 右键单击​​并验证然后我收到此错误。我的 SQL 服务器是 运行ning 在 NT Service\MSSQLSERVER 帐户下。 (默认,我没有改变任何东西)。我已授予该帐户 C:\Program Files (x86)\GnuPG 目录的管理员权限。这和解决方案的原因可能是什么?谢谢

当您使用驱动器盘符时,OS 会在本地计算机上查找 C:\ 和 D:\ 驱动器。当您从 VS/SSDT 运行 时,那是 您的 机器。当您从 SSISDB 运行 时,那就是服务器。

您最好的选择是使用(或创建)gpg.exe 的网络安装和文件的网络共享,然后使用 UNC 路径引用它们。您应该将其编码为项目参数和环境变量,以防这些位置发生变化,这样您就不会在包中寻找这些路径。

另一种选择是将您需要的工件(pgp.exe 和您的文件)放到服务器上的驱动器上,这些驱动器与您的本地机器完全相同。从长远来看,这是一场维护噩梦,但可以快速解决眼前的问题。