Net.Data 使用一个初始化文件来定制设置、配置语言环境和搜索路径。 这个文件的位 置及其内容和语法依赖于您所使用的平台和 API 。 有关细节请查看 Net.Data 参考指南的附录中关于您平台的文档。
初始化文件中包含的基本信息对所有平台来说都是相同的, 这些信息用三种可识别的配置语句之一来指定。 这三种语句类型是:
有些系统可以用允许现场连接(它维护持久性的数据库连接)的额外配置,并 且使用一个 Web 服务器应用程序编程接口(API)来改进性能。 Net.Data 支持这些 APIs, 依赖于您平台:
Net.Data 识别这些路径语句,以找到请求处理 Net.Data 宏的文件:
除开 HTML_PATH,上述其它路径语句标志了由 Net.Data 在其中搜索宏文件、可 执行文件、普通文件和包含文件的一组目录。 指定的每个目录以一个分号(;)来定界。 正斜杠(/)和反斜杠(\)同样对待。 多路径能力允许您组织您的文件,将您的 Web 应用程序隔离在它自己的目录中。
将搜索指定的目录,但不搜索子目录。 例如,如果您在如下目录中有 Net.Data 宏, 则必须在路径语句中一一指定:
usr/test/client usr/test/assoc usr/test/partner
MACRO_PATH 语句可能是这样的:
MACRO_PATH = usr/test/client;usr/test/assoc;usr/test/partner
以下章节中讨论 Net.Data 配置的例子中包含的路径描述,可能不同于依赖于您的平台和配置的路径描述。
MACRO_PATH 语句的语法与其它路径语句类似:
MACRO_PATH [=] path1;path2;...;pathn
等号(=)是可选的,以方括号指出。MACRO_PATH 语句标识了一个或多个目录,当需要查找一个 Net.Data 宏文件时,就按照此语句中的顺序对这些目录进行搜索。 例如,发 送如下的 URL 带路径与文件名称/WWW/macro/sqlm.mac 请求 Net.Data 宏 :
http://hostname/cgi-bin/db2www/WWW/macro/sqlm.mac/report
Net.Data 对 MACRO_PATH 配置语句中的路径,从左向右,逐个附加上路径 /WWW/macro ,直至找到 Net.Data 宏或者查找了所有的路径。 请参阅"调用 Net.Data"以获取调用 Net.Data 宏的信息。
例子:
Net.Data 初始化文件:
MACRO_PATH = ../macro;product1/macro
HTML 锚引用:
<A HREF="cgi-bin/db2www/query.mac/input">Submit another query.</A>
如果 query.mac 在../macro 目录中找到,则该 Net.Data macro 的限定名是/WWW/macro/query.mac。
EXEC_PATH 的格式类似于 MACRO_PATH:
EXEC_PATH [=] path1;path2;...;pathn
EXEC_PATH 语句标识了一个或多个目录,当需要查找一个由 EXEC 语句调用的外部程序 时,就按照此语句中的顺序对这些目录进行搜索。 如果找到该程序,则该外部程序名附加 到路径说明中,形成全限定文件名,传送给执行的语言环境。
例子 1:
Net.Data 初始化文件:
EXEC_PATH = ../pgms;product1/pgms;product2/pgms
Net.Data 宏:
%FUNCTION(DTW_REXX) myFunction() {
%EXEC{ "myFunction.cmd" %}
%}
如果 Net.Data 从目录 /www/cgi-bin 运行,并且文件 myfunction.cmd 在 product1/pgms 目录中找到,则该 程序的限定名是 /www/cgi-bin/product1/pgms/myfunction.cmd。
INCLUDE_PATH 的格式类似于 MACRO_PATH:
INCLUDE_PATH [=] path1;path2;...;pathn
INCLUDE_PATH 语句标识了一个或多个目录,当查找在 Net.Data 宏的 INCLUDE 语句中 指定的文件时,就按照此语句中的顺序对这些目录进行搜索。如果找到,则此包含文件的 名称就附加到路径说明中,形成一个全限定包含文件名。
例子 1:
Net.Data 初始化文件:
INCLUDE_PATH = ../macro;product1/macro
Net.Data 宏:
%INCLUDE "myInclude.txt"
如果 Net.Data 从目录 /WWW/cgi-bin 运行并且 myinclude.txt 在 ../macro 目录中找到,则该包含文件的限定名就是 /WWW/macro/myinclude.txt。
例子 2:
Net.Data 初始化文件:
INCLUDE_PATH = ../INCLUDES
Net.Data 宏:
%INCLUDE "OE/oeheader.inc"
如果 Net.Data 从目录 /www/cgi-bin运行,在目录 /WWW/INCLUDES/OE 中搜索包含文件,则该包含文件的限定名就是 /WWW/INCLUDES/OE/oeheader.inc。
FFI_PATH 的格式类似于 MACRO_PATH:
FFI_PATH [=] path1;path2;...;pathn
FFI_PATH 语句标识了一个或多个目录,当要查找一个与普通文件接口(FFI)函数一起被使 用的普通文件时,就按照此语句中的顺序对这些目录进行搜索。
例子:
Net.Data 初始化文件:
FFI_PATH = pub/ffi;pub/ffi/data
HTML_PATH 的格式类似于 MACRO_PATH:
HTML_PATH [=] path1;path2;...;pathn
例子:
Net.Data 初始化文件:
HTML_PATH = pub/www/htm
当一个查询返回一个大型对象(LOB)时,Net.Data 将它保存在 HTML_PATH 配置变量所指定的目录中。使用 LOB 时应该考虑系统限制,因为它们会快速地消耗资源。 请参阅 "使用大型对象" 以获取更多的信息。
ENVIRONMENT 语句用于配置一个语言环境。 一个语言环境是 Net.Data 用来访问数据源(例如 DB2 数据库)的一个可 插入模块。 语言环境被作为 DLLs 或共享库访问。Net.Data 提供若干语言环境,包含数据库接口。 您可以按 Net.Data 语言环境指南中的描述创建语言环境。 为使 Net.Data 同一个语言环境接口,Net.Data 初始化文件中必须包含一个 ENVIRONMENT 语句。 此语句的语法如下:
ENVIRONMENT(类型) 库名 ([使用变量,...] [CLIETTE "LE_type:数据库名"])
按本语法,变量语句是字符串:
NAME [=] VALUE_STRING
使用变量语句具有各种不同的目的。在有些情况下,变量语句被语言 环境适当地、或以一种辅助方式用于给函数设置需要的值。 Net.Data 使用的路径语句是一类特殊的变量语句。 Net.Data 提供从一个语言环境中访问变量语句的接口。 请参阅 Net.Data 语言环境指南以获取更多信息。
尽管 Net.Data 不直接提供任何类型的安全措施,但您仍可以采用以前用于保护系统和数据的手段,来保障您资产的安全性。必须首先确定您的资产所适用 的安全等级。
Net.Data 支持两类权限审批:一类保护您服务器上的某些目录,另一类保护您的 数据库。
当使用具有“保密套接字层(SSL)”或“保密超文本传送协议(SHTTP)”的 Web 服务器时,您可以对在客户系统和 Web 服务器之间发送的所有数据进行加 密。 这些安全措施对注册标识符、口令、客户通过 HTML 表输入的所有数据和 Web 服务 器发送的所有数据进行加密。
Net.Data 可以和 IBM Firewall 和大部分其它的防火墙产品一起使用,它们保护 Net.Data 服务器和网络,免受外部的探查 和攻击。 请按您组织的安全策略,仔细考虑这些配置:
在此配置中,创建仅包含 Net.Data 和 Web 服务 器的子网。这是最安全的配置,它把 Net.Data 和 DB2 都置于防火墙之内。此配置需要如 下安全措施:
一个可选的配置是,Net.Data 置于防火墙外面, DB2 置于防火墙里面,它们间的通信使用 DDCS 。此配置比配置 A 简单,仍然提供数据库保护。
此配置在防火墙里面显示 DB2 。Web 服务器必须安装有 CAE 。同样,防火墙必须具有一 个信息包过滤规则允许来自 Net.Data 的 DB2 客户请求和 DB2 给 Net.Data 的应答信息包。
对于此配置,防火墙不需要信息包过滤规则,但是 未能保护 Net.Data 和 DB2 免遭外部攻击。
保护您资产的另一个方法是使用 Net.Data 创建您自己的保护方案。例如,您可以请求 用户通过 HTML 表提供证实信息,再使用数据库中的数据或从 Net.Data 宏调用一个外部 程序证实它。
您还可以通过其他人发送给数据库的 SQL 语句,来保护您的资产。 例如, 将 SELECT 语句限制到两个表格。 要了解保护您资产的更多信息,请参阅 FAQ (经常询问的问题)的 Internet 安全性列表。 FAQ 在 Web 场点:
http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html
另外,可考虑使用隐藏变量封闭您的数据库内部结构不让别人用他的 Web 浏览器察看您的 HTML 源程序。 请参阅 "隐藏变量" 以获取更多信息。