请教各位:
[情况]
如果该用户没有退出400,可使用DSPJOBLOG来查看该用户所执行的操作;可如果该用户退出了,就无法再查看他所做操作了。
[问题]
如果该用户执行了删除Library操作,而他又退出了400,那我该通过什么途径去查看呢?
请各位帮我想想办法......
aeiou 回复于:2004-01-06 13:49:59 |
这么棘手的问题~~俺也想知道啊~
不知道DSPLOG行不行?俺现在想试一下都试不了,没权限删LIB啊。 |
brent_wu 回复于:2004-01-06 14:19:19 |
AS/400系统不记录每个用户的操作,别试了,没办法。 |
brent_wu 回复于:2004-01-06 14:23:25 |
DSPLOG只能显示传到QHST和QSYSOPR的MESSAGE |
xuguopeng 回复于:2004-01-06 17:08:13 |
当初听人说查看QPJOBLOG文件可以找到,但是没成功,只能通过修改系统值通过日志监视了,但是好象对性能会有很大影响吧 |
居士 回复于:2004-01-06 18:06:01 |
理论上可以通过 审核 来实现的,在系统参数里可以启用该项,不过我没用过。关注…… |
andrewleading_he 回复于:2004-01-06 18:12:28 |
期待中...... |
qingzhou 回复于:2004-01-06 18:48:21 |
据IBM工程师说可以通过在OS/400上执行以下步骤来实现监控:
1、CRTJRNRCV JRNRCV(QSYS/QAUDRCV01) 2、CRTJRN JRN(QSYS/QAUDCTL) JRNRCV(QSYS/QAUDRCV01) 3、WRKSYSVAL QAUDLVL,*NONE→*DELETE 4、WRKSYSVAL QAUDCTL,*NONE→*AUDLVL 以后就可以通过查看QAUDRCV01日志接收器的内容知道是谁执行了删除操作! [color=red:43e3a267cb]弊端:日志接收器会变得越来越大,不利于日志管理和系统运作。[/color:43e3a267cb] 还有听说可以通过修改用户Profile里面的参数来起监控作用(CHGUSRPRF),但没试过,不知是否如此;各位有没有别的更好的办法? |
stephenxie2003 回复于:2004-01-07 10:33:33 |
qingzhou的这种作法有谁试过没有啊?
成功了吗? |
zzzddd 回复于:2004-01-07 10:53:26 |
通过JRN确实可以实现,我试过的,现在就在这样用!
用了jrn,确实逃不过400的法眼,不过这是牺牲400性能为代价的! |
xuguopeng 回复于:2004-01-07 11:12:08 |
这种JRN可以做到有选择性的监视么? 还是监视系统所有对象?? |
qingzhou 回复于:2004-01-07 11:18:45 |
只监视DELETE操作(WRKSYSVAL QAUDLVL,*NONE→*DELETE),如果要监控其它操作,需要改为别的参数,具体可查看QAUDLVL帮助。 |
xuguopeng 回复于:2004-01-07 11:22:07 |
我知道,我问的是他所监视的对象是否指定为某个特殊的对象,例如:一个LIB.
启用JRN后,是否需要象数据库日志那样可以有选择性的日志? |
zzzddd 回复于:2004-01-07 11:25:35 |
他是能针对action做选择,对OBJ好像不能选,看结果的话,和数据库的jrn没什么区别,只是你要知道action的code! |
andrewleading_he 回复于:2004-01-07 11:57:59 |
有机会试一下! |
stephenxie2003 回复于:2004-01-07 13:43:20 |
看来IBMer高手也不少啊! |
blogliou 回复于:2004-01-07 14:02:59 |
起用安全日志是AS/400系统上能够实现目标复制的机理。
但光启用安全日志和修改系统值还不够,还必须要启动OBJECT的AUDITING属性才能够实现对这些目标的删除、修改等的日志记录。我们用DSPOBJD查看目标属性的时候会看到AUDITING的一段属性。启动OBJECT的AUDITING可以用CHGOBJAUD来实现。这也可以实现选择性对变动目标的日志记录。 |
xuguopeng 回复于:2004-01-07 14:41:08 |
楼上的意思是说建立日志以后,他不记录删除信息???必须启动OBJ的AUDIT才行??? |
blogliou 回复于:2004-01-07 14:58:26 |
[quote:a9d66ad8ca="xuguopeng"]楼上的意思是说建立日志以后,他不记录删除信息???必须启动OBJ的AUDIT才行???[/quote:a9d66ad8ca]
是的。 |
xuguopeng 回复于:2004-01-07 15:11:17 |
哦?? 呵呵,那样的话日志应该不能很大的呀!~~
如果我在日志里监控DELETE操作,只要把我想要的LIB启动AUDIT,那样除了删除LIB的信息任何信息都不会记录的,根本就不存在日志疯狂增长的道理呀?? |
blogliou 回复于:2004-01-07 15:15:02 |
[quote:26643aa971="xuguopeng"]哦?? 呵呵,那样的话日志应该不能很大的呀!~~
如果我在日志里监控DELETE操作,只要把我想要的LIB启动AUDIT,那样除了删除LIB的信息任何信息都不会记录的,根本就不存在日志疯狂增长的道理呀??[/quote:26643aa971] 是的。 |
blogliou 回复于:2004-01-07 16:00:34 |
用CHGOBJAUD可以改变OBJECT的AUDITING的值,
Object auditing value 有四个: *NONE *USRPRF *CHANGE *ALL 通常OBJECT缺省值是*NONE,即不记AUDITING记录。 另外,下面的关系我还没搞清楚: 1。用户的usrprf指定的*AUDIT特权。 2。CHGOBJAUD命令里Object auditing value的值 *USRPRF 3。用CHGUSRAUD命令来修改具有*AUDIT特权用户的AUDITING. 可能具有*AUDIT特权的用户,其create或delete目标等的操作也会记auditing,并可以用chgusraud来改变一些auditing的值和action。这个方面我没有注意。就是说chgobjaud是针对目标的,只要该目标被指定记录AUDITING(*change or *all),那么不管哪个用户对该目标的操作都会记AUDITING。而chgusraud是针对用户操作的。而OBJECT中Object auditing value的值 *USRPRF大概是表示如果用户具有*AUDIT特权,那么该用户对该目标的操作会记AUDITING,如果某用户没有*AUDIT特权,那么该目标便不会记AUDITING. 从而实现了对用户操作的选择? |
qingzhou 回复于:2004-01-08 16:42:13 |
用户简要表中包含该用户对哪些对象拥有所有权(Owns)和对哪些对象有权限(Authorized)。可使用命令DSPUSRPRF USRPRF(XXXXXX) TYPE(*OBJOWN,*OBJAUT)查看上述权限。用户共有八种特殊权限:*ALL;*SECADM;*JOBCTL;*SPLCTL;*SAVSYS;*SERVICE;*AUDIT;*IOSYSCFG。这八种特殊权限的含义分别为:
*ALL 用户能访问任何对象。 *SECADM 用户如对命令CRTUSRPRF和CHGUSRPRF有权限,则可创建和修改用户简要表。 *JOBCTL 用户能控制所有作业;能启动打印机和停止活动的子系统等。 *SPLCTL 用户有控制假脱机文件权限。 *SAVSYS 用户对所有对象有备份,恢复和释放硬盘空间的能力。 *SERVICE 用户有使用命令STRSST的权限。 *AUDIT 用户能改变和执行审计功能的权限。 *IOSYSCFG 用户有改变系统I/O和TCP/IP服务器配置的能力。 在用户简要表中有五种用户级别(User Class):Security Officer(*SECOFR);Security Administrator(*SECADM);Programmer(*PGMR);System Operator(*SYSOPR);User(*USER)。其中*SECOFR有上述全部八种权限,QSECOFR是OS/400内置的最高权限用户;*SECADM只有*SECADM一种特殊权限;*PGMR不含上述任何一种特殊权限;*SYSOPR有*JOBCTL和*SAVSYS二种特殊权限;*USER不含上述任何一种特殊权限。 QSECURITY系统值分为10,20,30,40,50五个等级。其中10表示无任何安全性措施;20表示只要用密码登录OS/400后,系统就无任何安全性措施;30表示用户要用密码登录OS/400并要有相应权限才可访问对象;40在30的基础上,增加了集成安全性,防止对系统的整体完整性进行破坏;50是满足C2级的具有相当严格安全措施的安全等级。一般QSECURITY值设为40。 用户对于对象的权限分为*OBJOPR,*OBJMGT,*OBJEXIST,*OBJALTER,*OBJREF五种,对于对象中的资料的权限分为*READ,*ADD,*UPD,*DLT,*EXECUTE五种。五种对象权限的含义分别为: *OBJOPR 用户能使用对象,如有资料权限则可查看对象描述。 *OBJMGT 包含 *OBJALTER和 *OBJREF权限加上移动,改名对象,给对象赋安全性权限等。 *OBJEXIST 用户能控制对象的存在和所有权。 *OBJALTER 用户能改变对象的属性,例如给数据库文件加上或去除触发器。 *OBJREF 用户能在数据库的交叉完整性中将对象指定为外部关键词。 OS/400定义了*ALL,*CHANGE,*USE,*EXCLUDE四种权限,它们实际上是对象权限和资料权限的组合:*ALL包括所有的对象和资料权限;*CHANGE包括*OBJOPR对象权限和所有的资料权限;*USE包括*OBJOPR对象权限和*EXECUTE,*READ资料权限;*EXCLUDE不包括任何对象和资料权限,用户可自定义对象和资料权限的组合。 对某个对象,用户被赋予特定的权限后就对该对象拥有私有权限(Private Authority),没有私有权限的其它用户对该对象拥有公有权限(Public Authority)。私有权限存放在该对象中和对该对象有私有权限的用户简要表中,公有权限在对象创建时就只存在于该对象中。 权限列表(Authorization List)包含了一些用户简要表的权限清单,把某一权限列表和某一对象相连后,权限列表中的用户就对该对象拥有在权限列表中的权限了。组简要表(Group Profile)是一种特殊的用户简要表,在组简要表中定义了对一些对象的权限,在用户简要表中可以指明该用户属于哪个组简要表,如果不对同属于一个组简要表的用户再单独赋予权限的话,则这些用户就对这些对象具有相同的权限。一个用户最多可属于16个组简要表,而组简要表不能再属于另一个组简要表。 用户对对象是否有指定权限的搜索顺序为:用户是否有*ALLOBJ权限 -> 用户对对象是否有私有权限 -> 用户是否位于对象的权限列表中 -> 用户所属组是否有*ALLOBJ权限 -> 用户所属组对对象是否有私有权限 -> 用户所属组是否位于对象的权限列表中 -> 用户对对象的公有权限是否够用 -> 对象权限列表中的公有权限是否够用。在上述搜索顺序中,某一环节对对象的权限够用时,搜索就停止。 以上关于OS/400权限方面介绍得很详细了,楼上的朋友理解起来就明白多了...... |
qingzhou 回复于:2004-01-08 16:46:52 |
[quote:7043a3940a="blogliou"]
3。用CHGUSRAUD命令来修改具有*AUDIT特权用户的AUDITING.[/quote:7043a3940a] 你所提到的关于USRPRF的审计功能,我想大概就是实现监控用户操作的另外一种途径. |
qingzhou 回复于:2004-01-09 18:16:33 |
前几天想出了一个更简便的方法实现该功能,具体做法如下:
我们如果仔细去研究一下SIGNOFF这个命令,会发现它有个LOG(*)参数,系统默认是LOG(*NOLIST),如果我们将该参数改为LOG(*LIST)的话,即使用户执行了SINGOFF操作(退出400),系统也自动会生成一个SPOOL FILE文件对他的操作进行全部记录下来。 哈哈。。。。,真有意思! 既然是这样,那我们就可以采用一条CL命令来简单实现: CHGCMDDFT CMD(SIGNOFF) NEWDFT('LOG(*LIST)') 以后,我们要查询时,只需执行WRKSPLF进行查看即可。 |
rudy5 回复于:2004-01-27 17:06:02 |
那系统会将spool file存放到那个spool file下??它会记录写什么信息???谢谢指教! |
kimdai 回复于:2004-01-29 13:45:07 |
系统会将该用户登陆系统时所作的操作记录并放入其SPOOL FILE中, 内容会包括:
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST 等。 无论用那种方法,定时的清除相关记录文件是明智的选择,因为这些东东会吞食调很多硬盘空间。 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/