Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取AS400/iSeries服务帐户涉及的文件和程序列表_Sql_Permissions_Ibm Midrange - Fatal编程技术网

Sql 获取AS400/iSeries服务帐户涉及的文件和程序列表

Sql 获取AS400/iSeries服务帐户涉及的文件和程序列表,sql,permissions,ibm-midrange,Sql,Permissions,Ibm Midrange,我正在尝试获取iSeries上的服务帐户所涉及的程序(RPG/CL/SQL)和文件的列表。这个想法是,有了这个列表,我们可以将特定的权限(我知道这会使事情变得非常复杂)绑定到用户帐户,以实现更安全的特定于应用程序的服务帐户。有没有办法做到这一点,也许可以通过运行命令来获取报告。也许有一个SQL语句 如果我的条款不合适,请原谅,我仍然是iSeries的新手。如果这样配置,审计日志将包含您需要的内容 最新的7.1 TR包括存储过程,以便轻松阅读日志。 查尔斯因此,尽管查尔斯的答案可能是获得一份全

我正在尝试获取iSeries上的服务帐户所涉及的程序(RPG/CL/SQL)和文件的列表。这个想法是,有了这个列表,我们可以将特定的权限(我知道这会使事情变得非常复杂)绑定到用户帐户,以实现更安全的特定于应用程序的服务帐户。有没有办法做到这一点,也许可以通过运行命令来获取报告。也许有一个SQL语句


如果我的条款不合适,请原谅,我仍然是iSeries的新手。

如果这样配置,审计日志将包含您需要的内容

最新的7.1 TR包括存储过程,以便轻松阅读日志。


查尔斯

因此,尽管查尔斯的答案可能是获得一份全面报告的答案。最后,我按照一位同龄人的建议做了以下工作

请注意,尽管我的目标没有正确解释,但我的目标是为程序创建一个特定于应用程序的用户/服务帐户。这是为了避免使用具有多个权限的应用程序,从而获得一些安全性

1.浏览源代码(在我的例子中是经典ASP),并记下该程序使用的所有过程的名称
2.创建将程序引用输出到显示文件的CL程序。然后将文件内容导出到Excel,并在必要时进行按摩

PGM 
DSPPGMREF  PGM(MYLIB/PGM001) OUTPUT(*OUTFILE) OUTFILE(MYLIB/DSPPGMREF) OUTMBR(*FIRST *REPLACE)
DSPPGMREF  PGM(MYLIB/PGM002) OUTPUT(*OUTFILE) OUTFILE(MYLIB/DSPPGMREF) OUTMBR(*FIRST *ADD)
ENDPGM
但是,有人告诉我,DSPPGMREF不能显示服务程序引用。因此,以下是为这些人做的

PGM                                                                                             
ADDLIBLE LIB(ABSTRACT) POSITION(*LAST)                                                          
MONMSG MSGID(CPF0000)                                                                           
WRKOBJR OBJ(SRVPGM01) OBJTYPE(*SRVPGM) OUTPUT(*OUTFILE) OUTFILE(MYLIB/WRKOBJR) MBROPT(*REPLACE)
WRKOBJR OBJ(SRVPGM02) OBJTYPE(*SRVPGM) OUTPUT(*OUTFILE) OUTFILE(MYLIB/WRKOBJR) MBROPT(*ADD)    
WRKOBJR OBJ(SRVPGM03) OBJTYPE(*SRVPGM) OUTPUT(*OUTFILE) OUTFILE(MYLIB/WRKOBJR) MBROPT(*ADD)    
ENDPGM   

谢谢你的帮助。很抱歉,我的回答比我的问题要具体一点,但最终这是我想要达到的,我不得不概括地提出这个问题。我想无论如何我都会把我的答案贴出来,以防将来对别人有所帮助

我不知道有什么方法可以知道某个特定的用户帐户曾经接触过什么对象。您可以查看日志,但它们通常只存储最近X天的信息(可配置)。这里有一些关于IBMi的安全问题。当你说“服务帐户”时,你到底是什么意思?我们通常参考用户配置文件(*USRPRF对象)。但也可以有其他类型的访问。例如,可以将web服务器配置为允许用户通过存储用户ID和密码的验证列表(*VLDL对象)登录。用户ID由某些应用程序(如web服务器)验证,但与aUser Profile.WarrenT无关-我所说的服务帐户是专门创建的帐户,用于允许执行存储过程(或SQL语句),以便向web应用程序发送数据。我不确定它是否与实际的iSeries用户帐户相同。有趣的是,这很可能是正确而彻底的答案。然而,我一直在寻找一种不需要太多设置或任何额外特权的方法。。应已设置安全审核日志。你唯一需要做的就是去CHGUSRAUD SVCPRFNAM。你有任何类型的变更管理系统(CMS)吗?大多数都包括这样的x-ref设施。或者还有一些独立的工具。这并不能完全回答您最初的问题。您只能找到给定程序集的依赖对象。并非服务配置文件涉及的所有“程序和文件”。查尔斯,你说得对。我的问题本应以不同的方式提出。是的,我们使用Aldon CMS。在Aldon与屏幕一起工作时,使用选项41或42=对依赖对象进行操作,以找出什么使用了某个对象。或者选项39=显示必要的对象以查看对象使用了什么。哇,非常感谢Charles!选项41和42将在我未来的iSeries项目中非常有用。我真的很感谢你的帮助。