服务器 频道

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

  【IT168 服务器学院】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修改系统值QAUDCTL、QAUDLVL,然后CRTJRN创建QAUDJRN和创建QAUDJRN。

   

0
相关文章