从以上分析不难看出,客户服务器结构在安全上也存在一个隐患,当所有县支行的数据都集中到市行后,在任何一个县行的客户机上都可直接用isql修改其他行处的数据,当然必须以可信任的用户比如icbacct用户登录后方可实现。
┌──────┐ 数据服务器名:acct_online
│ ONLINE 7.1 │ 主机名:acct_qz
│ (内嵌Star) │ (服务器)
└┬───┬─┘ DDN,TCP/IP
┌───┘ └─────┐
┌──┴──┐ ┌──┴──┐
│ONLINE 5.0│主机名:acct_ha│ONLINE 5.0│主机名:acct_xx
│ I-Net │(客户机1) │ I-Net │(客户机2)
└─────┘ └─────┘
图1 客户服务器结构的网络拓扑图
比如一台服务器和两台客户机以TCP/IP网络连接在一起(图1),在服务器上建立数据库服务器cct_online,在$INFORMIXDIR/etc/sqlhosts文件中命名。在/etc/services文件中定义了服务名sqlexec及该服务占用的端口号和所采用的协议类型,如2000/tcp 表示占用2000号端口,协议类型为TCP。下面以服务器主机acct_qz为例来加以说明:
① 文件/etc/hosts:
#net address hostname host alias
10.168.100.3 acct_qz host1_alias
10.168.106.1 acct_ha host2_alias
10.168.107.1 acct_xx host3_alias
② 文件$INFORMIXDIR/etc/sqlhosts:
#dbservername nettype hostname servicename
acct_online onsoctcp acct_qz sqlexec
③ 文件/etc/services:
#service_name port#/procotol aliases
sqlexec 2000/tcp
sqlrmtlitcp程序与普通的客户机通信软件一样要通过服务sqlexec对应的端口号2000与服务器建立连接,所以端口号2000必须保证全局一致。客户机acct_ha和acct_xx上的这三个文件内容基本上要与服务器acct_qz上的三个文件一样。
2 在单机上运行客户服务器应用程序