我们有两台400在局域网上。我在其中一台400中建立一个DDM file,远程的实际文件为另一台400上的PF。可是我用DFU试图输入数据到这个ddm file时出错:
CPF9190:Authorization failure on DDM TCP/IP connection attempt.
Cause . . . . . : A connection attempt failed with reason code 17.
...
...
17 -- The security mechanism requested by the client is not supported or
allowed at the server. See recovery information below.
Recovery . . . : Correct the problem indicated by the reason code if
possible, and attempt to connect again. A common cause for reason code 17
is that the server requires a password but the client sends only a user ID,
or the server requires an encrypted (substitute) password, which an AS/400
client does not support at this time. A DB2/400 server can be configured to
not require a password or an encrypted password by using the CHGDDMTCPA CL
command.
看样子是在连接另外一台400时只发送了用户名而没有发送口令,所以登录失败。但是我不知道登录用户名和口令如何才能发送以使其能正确登录。请高手执教!!
xuguopeng 回复于:2005-08-29 10:29:49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用CHGDDMTCPA命令 系统提示的已经很清楚了 就不知道看看。。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mickeycheng 回复于:2005-08-29 10:37:35 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
如果修改 CHGDDMTCPA 的参数PWDRQD(*NO),则会有系统安全的问题。所以不希望修改此参数的啊!谢谢你的回复!但是我不希望修改此参数。。。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qingzhou 回复于:2005-08-29 11:15:13 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
是按如下步骤的执行过程出错的吗?
1. 首先确保双方系统上的分布式处理服务已启动: ===>STRTCPSVR SERVER(*DDM) 2. 为目标系统创建DDM文件: ===>CRTDDMF FILE(LIB/TESTDDM) RMTFILE(LIB/MYPF) RMTLOCNAME(s65f6f8b *IP) 其中:TESTDDM是DDM文件名; MYPF是远程系统s65f6f8b上要操作的文件的名称。 3. 在本地系统上运行更新MYPF文件命令: ===> SBMRMTCMD CMD(' QSYS/UPDDTA FILE(LIB/MYPF) ') DDMFILE(LIB/TESTDDM) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mickeycheng 回复于:2005-08-29 12:33:45 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
是按如下步骤:
1、远程400中DDM服务已经运行 2、本地400中建立DDM FILE CRTDDMF FILE(TSTLIB/TSTDDMF) RMTFILE(TZKMLIB/STUPF) RMTLOCNAME('10.0.0.10' *IP) 3、本地400中运行: UPDDTA TSTLIB/TSTDDMF 结果报以上错误。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qingzhou 回复于:2005-08-29 12:59:32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地400执行:[b:12b430033b]===>SBMRMTCMD CMD(' UPDDTA FILE(TSTLIB/TSTDDMF) ') DDMFILE(TSTLIB/TSTDDMF)[/b:12b430033b]后的结果呢? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mickeycheng 回复于:2005-08-29 13:06:36 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
执行:SBMRMTCMD CMD(' UPDDTA FILE(TSTLIB/TSTDDMF) ') DDMFILE(TSTLIB/TSTDDMF)
或者 SBMRMTCMD CMD(' UPDDTA FILE(TZKMLIB/STUPF) ') DDMFILE(TSTLIB/TSTDDMF) 后的结果: 都是报如下错误: CPF9190:Authorization failure on DDM TCP/IP connection attempt. Cause . . . . . : A connection attempt failed with reason code 17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qingzhou 回复于:2005-08-29 13:26:08 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[b:94c5a1acfb]===>WRKMSGD CPF9190[/b:94c5a1acfb]
[code:1:94c5a1acfb] 显示格式化信息文本 系统 : S65F6F8B 信息 ID . . . . . . . . . . : CPF9190 信息文件 . . . . . . . . . . : QCPFMSG 库 . . . . . . . . . . . . : QSYS2989 消息 . . . . . : 尝试 DDM TCP/IP 连接时授权失败。 原因 . . . . . : 尝试连接失败,原因代码是 &1 。原因代码及其含义如下: 0 -- 未知的原因。 1 -- 密码到期。 2 -- 密码无效。 3 -- 密码丢失。 4 -- 协议违例。 5 -- 找不到用户标识。 6 -- 用户标识无效。对于 iSeries 服务器来说,这可能表示损坏的用户概要文件或 PASSWORD(*NONE) 。 7 -- 用户标识被撤销或禁用。 15 -- 对服务器进行安全性处理时失败。 16 -- 新密码无效。 尚有 ... 按“执行”键以继续。 F3= 退出 F11= 显示非格式化信息正文 F12= 取消 [/code:1:94c5a1acfb] [code:1:94c5a1acfb] 显示格式化信息文本 系统 : S65F6F8B 信息 ID . . . . . . . . . . : CPF9190 信息文件 . . . . . . . . . . : QCPFMSG 库 . . . . . . . . . . . . : QSYS2989 17 -- 客户机所要求的安全机制在服务器上不受支持或不允许。查看下面的恢复息。 22 -- 对客户机进行安全性处理时失败。 恢复 . . . . . : 若有可能,则更正由原因代码指示的问题,并尝试再次连接。原因代码 17 的常见原因是服务器需要密码,但客户机只发送了用户标识,或服务器需要加密的密码,但客户机未发送加密的密码。可以使用CHGDDMTCPA CL 命令将iSeries DDM 服务器配置为不需要密码或加密密码。 底部 按“执行”键以继续。 F3= 退出 F11= 显示非格式化信息正文 F12= 取消 [/code:1:94c5a1acfb] 17代码提示在400的安全机制这关过不去,DDM文件的创建过程都没问题,如果在创建DDM文件时修改参数: ===> CRTDDMF FILE(LIB/TESTDDM) RMTFILE(LIB/MYPF) RMTLOCNAME('x.x.x.x' *IP) AUT(*CHANGE) 估计也没多大意义。 执行了===> CHGDDMTCPA AUTOSTART(*YES) PWDRQD(*NO) 就可以通过,对吗? 但哪边可以追加密码呢?奇怪。。。 :roll: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mickeycheng 回复于:2005-08-29 13:41:08 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
执行 CHGDDMTCPA AUTOSTART(*YES) PWDRQD(*NO) 之后,
upddta就能正常读取和修改远程的PF的数据! 但是偶不希望修改DDMTCP属性啊! 偶也在找到底在哪里登录用户名和密码呢。。。 找啊找。。。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qingzhou 回复于:2005-08-29 13:52:02 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[b:569df3f0cf]启动 *DDM TCP 服务后,对应如下2点:[/b:569df3f0cf]
1、当这个TCP 服务启动时,系统提交 QRWTLSTN 批作业到 QSYSWRK 子系统的 QSYSNOMAX 作业队列中,同时在 QSYSWRK 中还可发现预起作业 QRWTSRVR,二个作业的用户为QUSER。 2、如果上述命令执行成功,用户可用 NETSTAT *CNN 命令找到名‘DRDA’的端口处于侦听状态,默认端口号应为:446。 [b:569df3f0cf]如果启动 *DDM的TCP服务:DRDA出错,可以按照如下进行诊断和处理。[/b:569df3f0cf] 1、如果提交STRTCPSVR *DDM 命令后,但446 端口不处于侦听状态,则用WRKJOB QRWTLSTN 检查 QRWTLSTN 生成的作业记录。 2、当首次启动STRTCPSVR *DDM时,系统在IFS中 /QIBM/ProdData/OS400/DRDA 目录中创建名为endSock 的 UNIX 套接字,在这目录路径中每个目录必须存在,否则QRWTLSTN会自动结束,并在作业记录中发现错误信息: MSGCPE3465 F/QRWXDLL *STMT T/QRWXDLL *STMT, No such file or directory. 此时用户应该用MDDIR创建所需的目录。 可问题现在不是DDM出错呀,是AS/400的安全机制过关不了。 CHGDDMTCPA AUTOSTART(*YES) PWDRQD(*NO)就会造成系统不安全了吗?应该不会,要实施DDM服务,首先需要利用USERPRF登陆OS/400;其次要具备*SERVICE权限才能启动*DDM服务,所以即使修改了PWDRQD(*NO)问题也是不大。 问题有点棘手,只能再想想看~~~ :roll: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mickeycheng 回复于:2005-08-29 14:04:55 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
如果使用CHGDDMTCPA AUTOSTART(*YES) PWDRQD(*NO),则任意用户都可以修改远程400的数据库文件了,因为没有用户合法性校验,这势必会造成系统安全隐患啊。
谢谢你答复。一起再找找看。。。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qingzhou 回复于:2005-08-29 14:14:56 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
是否先要用ADDRDBDIRE创建数据库连接,在创建时设定参数 RMTAUTMTH(*USRIDPWD),然后再启动DDM服务STRTCPSVR *DDM,这样应该实现了不需要执行CHGDDMTCPA AUTOSTART(*YES) PWDRQD(*NO)修改参数,同时也保证了数据安全,因为系统会提示输入USRPRF和PASSWORD才能执行更新PF。
测试看看是否如此?
|