• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

AS/400如何监控ODBC的数据传输?

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 21次 | 进入软件测试论坛讨论

领测软件测试网

MILY: 黑体; mso-ascii-font-family: 宋体">

ODBC为异种OS访问AS/400提供接口,但是,安全方面的问题也接踵而来,如何有效监控ODBC对AS/400数据的传输?本文将通过Exit Program的方式来进行监控。

QIBM_QTF_TRANSFER(程序1

PGM        PARM(&RC &STRU)    

                        

DCL  VAR(&RC) TYPE(*CHAR) LEN(1)                

DCL  VAR(&STRU) TYPE(*CHAR) LEN(80)             

DCL  VAR(&USER)  TYPE(*CHAR) LEN(10) /* user profile*/

DCL  VAR(&APP1)  TYPE(*CHAR) LEN(10) /* function    */

DCL  VAR(&APP2)  TYPE(*CHAR) LEN(10) /* sub function*/

DCL  VAR(&TFOBJ) TYPE(*CHAR) LEN(10) /* file  name  */

DCL  VAR(&TFLIB) TYPE(*CHAR) LEN(10) /*library      */

DCL  VAR(&TFMBR) TYPE(*CHAR) LEN(10) /* member      */

DCL  VAR(&TFFMT) TYPE(*CHAR) LEN(10) /* format      */

DCL  VAR(&TYPE)  TYPE(*CHAR) LEN(2)  /* journaltype */

MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(EXIT))  

    

CHGVAR     &RC    VALUE('1') /* set return code to + 

            allow request unless rejected by program */  

CHGVAR     &USER  VALUE(%SST(&STRU 1 10))  /*user */  

CHGVAR     &APP2  VALUE(%SST(&STRU 21 10)) /*funct*/  

CHGVAR     &TFOBJ VALUE(%SST(&STRU 31 10)) /*file */  

CHGVAR     &TFLIB VALUE(%SST(&STRU 41 10)) /*libr */  

CHGVAR     &TFMBR VALUE(%SST(&STRU 51 10)) /*mbr  */  

CHGVAR     &TFFMT VALUE(%SST(&STRU 61 10)) /*fmt  */  

 

LOG:  CHGVAR     VAR(&TYPE) VALUE('X' *CAT &RC)       

SNDJRNE  JRN(QAUDJRN) TYPE(&TYPE) ENTDTA(&STRU)     

 

EXIT:ENDPGM    

 QIBM_QZDA_NDB1(程序2)

  PGM          PARM(&RC &REQUEST)  

                                

  DCL        VAR(&RC) TYPE(*CHAR) LEN(1) VALUE('1')            

  DCL        VAR(&REQUEST) TYPE(*CHAR) LEN(700)                 

  DCL        VAR(&TYPE) TYPE(*CHAR) LEN(2)                     

  DCL &X1800 *CHAR 4 VALUE(X'00001800') /*create database file*/

  DCL &X1801 *CHAR 4 VALUE(X'00001801') /*create source   file*/

  DCL &X1802 *CHAR 4 VALUE(X'00001802') /*add    member       */

  DCL &X1803 *CHAR 4 VALUE(X'00001803') /*clear  member       */

  DCL &X1804 *CHAR 4 VALUE(X'00001804') /*delete member       */

  DCL &X1805 *CHAR 4 VALUE(X'00001805') /*file override       */

  DCL &X1806 *CHAR 4 VALUE(X'00001806') /*delete file override*/

  DCL &X1807 *CHAR 4 VALUE(X'00001807') /*create save file    */

  DCL &X1808 *CHAR 4 VALUE(X'00001808') /*clear  save file    */

  DCL &X1809 *CHAR 4 VALUE(X'00001809') /*delete file         */

  /* OPTIMIZED DATABASE SERVER DECLARES */                     

  DCL &DBFMT *CHAR  8  /* format name            */             

  DCL &DBFID *CHAR  4  /* function identifier    */           

  /* FOLLOWING PARAMETERS ADDITIONAL FOR FORMAT ZDAD0100 */   

  DCL &DBFILE *CHAR 128  /* file name              */         

  DCL &DBLIB  *CHAR  10  /* library name           */         

  DCL &DBMBR  *CHAR  10  /* member name            */         

  DCL &DBAUT  *CHAR  10  /* authority to file      */         

  DCL &DBBFIL *CHAR 128  /* based on file name     */          

  DCL &DBBLIB *CHAR  10  /* based on library name  */  

  DCL &DBOFIL *CHAR  10  /* override file name     */  

  DCL &DBOLIB *CHAR  10  /* override library name  */  

  DCL &DBOMBR *CHAR  10  /* override member name   */  

 

  MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(EXIT))    

  /* allow request unless rejected by program */    

    

  CHGVAR     VAR(&RC) VALUE('1')                      

  /* set variables from request description */        

  CHGVAR VAR(&DBFMT)  VALUE(%SST(&REQUEST 21 8))      

  CHGVAR VAR(&DBLIB)  VALUE(%SST(&REQUEST 161 10))    

  CHGVAR VAR(&DBMBR)  VALUE(%SST(&REQUEST 171 10))  

  CHGVAR VAR(&DBOFIL) VALUE(%SST(&REQUEST 329 10))  

  CHGVAR VAR(&DBOLIB) VALUE(%SST(&REQUEST 339 10))  

  CHGVAR VAR(&DBOMBR) VALUE(%SST(&REQUEST 349 10))  

 

  LOG:                                                

    CHGVAR   VAR(&TYPE) VALUE('Z' *CAT &RC)           

    SNDJRNE  JRN(QAUDJRN) TYPE(&TYPE) ENTDTA(&REQUEST)

  EXIT: ENDPGM

具体实施方法:

1、将上述2个程序编译,Owner改为QSECOFR,并使用继承权限。

2、CHGNETA PCSACC(*REGFAC)。

3、使用ADDEXITPGM命令把程序添加到相应的Exit point。

4、可以给这2个程序设置一个权限列表,凡是在权限列表内有权限执行此程序的人才可以利用ODBC下传数据

5、DSPJRN JRN(QAUDJRN) ENTTYP(Z1)就可以查看下传的数据情况了。

6、可以用WRKREGINF查看Exit program设置情况。

注:需要有QAUDJRN,如没有需先WRKSYSVAL修改系统值QAUDCTLQAUDLVL,然后CRTJRN创建QAUDJRN和创建QAUDJRN。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网