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

来源:岁月联盟 编辑:zhu 时间:2008-02-21
AS/400如何监控ODBC的数据传输?内容简介:【AS400教程】 ODBC为异种OS访问AS/400提供接口,但是,安全方面的问题也接踵而来,如何有效监控ODBC对AS/400数据的传输?本文将通过Exit Program的方式来进行监控。 QIBM_QTF_TRANSFER(程序1) PGM PARM(RC

  【AS400教程】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。

图片内容