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修改系统值QAUDCTL、QAUDLVL,然后CRTJRN创建QAUDJRN和创建QAUDJRN。
文章来源于领测软件测试网 https://www.ltesting.net/