比如有ABCD四个用户,如何让他们只能看到各自的A、B、C、D一个PRINT QUEUE,同时能做打印输出的工作。
前提要求是:其他操作全部禁止,包括命令行。
是在PROFILE里限制?JOBD里?或者其他什么地方?
多谢。
xuguopeng 回复于:2005-07-27 12:40:46 | ||||||||||||||||||
你是要限制ABCD只能看到各自的SPLF有权限还是让ABCD能操作一个OUTQ下所有的SPLF?? | ||||||||||||||||||
qingzhou 回复于:2005-07-27 14:51:24 | ||||||||||||||||||
控制用户使用spool file的权力要从以下入手:
1、拥有*SPLCTL权限的用户,可以处理任意outq中的spool file. 2、spool file owner有权处理自己outq中的所有spool file. 3、拥有*JOBCTL的用户,outq参数为OPRCTL(*YES),可以处理该outq中的所有spool file. 4、用户对outq 拥有*read,*add,*dlt的权限,指定outq为AUTCHK(*DTAAUT). 5、outq指定AUTCHK(*OWNER),则该用户必须是outq的owner. 6、outq指定为DSPDTA(*YES),用户必须有*READ权限才能使用DSPSPLF,CPYSPLF,SNDNETSPLF等命令。 | ||||||||||||||||||
walkonair 回复于:2005-07-27 15:26:25 | ||||||||||||||||||
我再说详细点。
QA\QB\QC\QD是各部门自己的打印队列,其实各部门还有A1A22\B2B3\C4C6\D7D9之类的用户,他们的最终任务是往各自队列里发送报表。而用户ABCD是各部门的ADMIN,他们仅负责将报表从各自的队列里发送到相应的打印机里。 我继续问: 1) 将*PUBLIC置为*EXCLUDE. 这样所有的人都不能访问OUTQA, 这样设的结果是所有人都能看到OUTQA但不能用?还是所有人连这个Q都看不到?我希望的结果是后者,用户只能看到他应该看到的Q,比如说A看到并且操作QA,但看不到QB\QC\QD。 2)我想通过菜单方式+CL命令解决这个问题,是否可行?有没有一点思路提供啊? | ||||||||||||||||||
xuguopeng 回复于:2005-07-27 17:27:00 | ||||||||||||||||||
你既然通过菜单的方式限制用户ABCD使用命令行 那么即使A对QD有权限 那A也是看不到QD的 | ||||||||||||||||||
wildfish 回复于:2005-07-27 18:34:36 | ||||||||||||||||||
:) 我们是依赖自己开发的应用系统的权限来做控制,比如个人的只能看到个人的,经理可以看到部门的,总经理或者it人员可以看到所有的。不过得写程序。 | ||||||||||||||||||
YZG 回复于:2005-07-28 14:16:20 | ||||||||||||||||||
自己写程序吧,用些API函数,仿WRKSPLF,也不难,只是多花些时间 | ||||||||||||||||||
qingzhou 回复于:2005-07-28 14:42:15 | ||||||||||||||||||
或者可以自己写一个简单的CLP:Mysplf程序,在代码中包含WRKSPLF语句:
===>WRKSPLF SELECT(Spfname *ALL *ALL A/B/C/D) 然后用 CRTCMD CMD(Seesplf) PGM(Mysplf) SRCFILE(LIB/QCMDSRC) TEXT('My Wrksplf Command') 创建一个新的用户自定义的CMD:Seesplf,再集成到应用系统的MENU中来满足要求。 在使用不同的MENU项调用CMD时可以固定Spooled name,但可以让用户填User Data参数(也就是A/B/C/D用户),从而控制根据不同的用户只能查看指定的各自的SPLF。 | ||||||||||||||||||
qingzhou 回复于:2005-07-28 15:07:43 | ||||||||||||||||||
或者从权限角度进行控制。<提示:先测试环境测试再使用>
取消OUTQ的*PUBLIC权限,然后: 1. 分别定义用户级别为*USER的用户组(AGROUP/BGROUP/CGROUP/DGROUP): CRTUSRPRF USRPRF(AGROUP/BGROUP/CGROUP/DGROUP) PASSWORD(*NONE) USRCLS(*USER) 2. 将各部门用户纳入各自定义的用户组: CHGUSRPRF USRPRF(A1/A2/A3。。。) GRPPRF(AGROUP) CHGUSRPRF USRPRF(B1/B2/B3。。。) GRPPRF(BGROUP) CHGUSRPRF USRPRF(C1/C2/C3。。。) GRPPRF(CGROUP) CHGUSRPRF USRPRF(D1/D2/D3。。。) GRPPRF(DGROUP) 3. 更改SPLF所在的OUTQ,使得SPLF的拥有者可以访问它: CHGOUTQ OUTQ(Lib/Outq) DSPDTA(*OWNER) OPRCTL(*NO) AUTCHK(*DTAAUT) 4. 更改SPLF所对应的PRTF,使得SPLF拥有者为用户所在的用户组: CHGPRTF FILE(QPDSPLOG) OUTQ(Lib/Outq) SPLFOWN(*CURGRPPRF) 按照以上设置后,还可以控制SPLF的拥有者不能去修改、删除自己OUTQ下的SPLF! | ||||||||||||||||||
YZG 回复于:2005-07-28 16:46:23 | ||||||||||||||||||
权限可以控制,可命令行的问题如何解决?
干脆自己写一个(此程序未完成,余下的只是体力活,看来在企业中还是满有用的,决心把它完成了.到时再共享出来.)
|