Ibm midrange 使用qsys2.qcmdexc但切换用户

Ibm midrange 使用qsys2.qcmdexc但切换用户,ibm-midrange,db2-400,rpgle,Ibm Midrange,Db2 400,Rpgle,我有一个内部网站,试图从iSeries服务器使用一些现有的RPG/CL代码。我希望偶尔代表登录用户运行iSeries作业。但是,与我正在使用的iSeries的连接是以“appuser”这样的用户名运行的,该用户名是通过SQL连接专门为应用程序(具有ODBC只读访问权限)设置的。我遇到的问题是,iSeries上发生的许多安全性/日志记录都使用作业用户在所有位置标记记录,并且该用户是应用程序的名称,而不是登录到应用程序的用户 我可以使用qsys2.qcmdexc获取命令,但我需要一种方法将用户从iS

我有一个内部网站,试图从iSeries服务器使用一些现有的RPG/CL代码。我希望偶尔代表登录用户运行iSeries作业。但是,与我正在使用的iSeries的连接是以“appuser”这样的用户名运行的,该用户名是通过SQL连接专门为应用程序(具有ODBC只读访问权限)设置的。我遇到的问题是,iSeries上发生的许多安全性/日志记录都使用作业用户在所有位置标记记录,并且该用户是应用程序的名称,而不是登录到应用程序的用户

我可以使用qsys2.qcmdexc获取命令,但我需要一种方法将用户从iSeries切换到适当的“真实用户”(我在web应用程序中有他们的用户名)。我提出的唯一想法是使用一个CL程序来完成命令字符串的提交工作,并将真正的用户作为用户传入


是否有更好的选项来更改作业的用户,以便我可以通过SQL连接以交互方式运行作业?还是我做提交工作的最佳选择?

这里是Shannon O'Donnel的一篇文章,其中介绍了一个可以交换用户配置文件的程序。我成功地使用了它:


最好是将日志功能更改为使用currentUser,而不是applicationName(或jobUser)。如果它真的是
安全日志记录
,那么忽略currentUser不是一个好选择。这是一个相对较大的“现成”软件包,所以我不想修改那么多软件。。。它使用SDS结构(用户/终端),日志记录实际上只是更改/创建用户记录之类的东西,但用于跟踪内容是有用的。应该只有一个函数(可能从多个地方调用),但是如果一个包不合理,你不能做太多。应该做一些测试来验证配置文件交换不会干扰数据库服务器和(可能)连接时现有应用程序中已经发生的交换,这看起来很有趣,我注意到的一点是,它看起来与长度为10的密码一起工作,而长度不超过2级密码的128长度。我会再仔细研究一下,也许我可以修改一下。你确实看到了文章上的日期,以及使用的API,对吗?为什么不修改它们并发布更新的代码?@clutton查看更多最新文档。API可以很好地处理128个字符传递短语,但同时它必然会变得更复杂。