我在使用 CMD.exe SSIS 任务和 gpg 时遇到了问题。
我以某个用户身份登录时在服务器上创建了一个密钥环。当我想加密/解密 SSIS 包中的文件时,Visual Studio 中一切都运行正常 - 即使使用执行 cmd 任务也是如此。问题是当我安排作业执行相同操作时。
当执行 SQL Agent 作业时,即使您以特定用户身份执行该作业,当存在执行命令任务时,行命令任务将以 SQL Agent 正在运行的服务帐户身份执行。在这种情况下,运行它的帐户无法查看 MY 密钥环,加密任务失败。
有没有办法将行命令始终“指向”我的密钥环,或者有没有办法将我的密钥环设为默认密钥环并授予对该密钥环的读/执行权限?
SQL Agent 运行的帐户在用户文件结构下没有自己的文件夹,所以我猜测无法将密钥环复制到不存在的用户文件夹!
简单说两件事:在我因为问了一个愚蠢的问题而被批评之前,我对 gpg 的东西很陌生……很陌生,所以我转向这个论坛寻求指导。其次,从安全角度来看,我实际上是这个服务器上唯一一个处理 gpg 的人,所以不会有随机用户突然出现在服务器上的问题。只有我和另一个有权访问服务器的管理员。
任何帮助都将不胜感激!我还添加了正在执行的行命令:
--recipient [email protected] --trust-model always --output "\VNUOLSERPDB1\ConcurData\Outgoing\EVI_p006320452r3_20170208.txt.pgp" --encrypt "\VNUOLSERPDB1\ConcurData\Outgoing\EVI_p006320452r3_20170208.txt"
答案1
我今天解决了类似的问题:
将文件从 C:\Users\MyUserName\AppData\Roaming\gnupg\ 移动到 C:\Users\SQLServerAgentUserName\AppData\Roaming\gnupg\
然后在 gpg 命令中 --homedir C:\Users\SQLServerAgentUserName\AppData\Roaming\gnupgoption 的 --encrypt 选项之前插入以下选项