z/OS 上的 DB2 计划

这是定制 z/OS 环境的大型任务中的一部分,并且仅与代理组件相关。配置管理器用户名称服务器不需要对 DB2 的访问权。

WebSphere Message Broker for z/OS 使用 ODBC 访问 DB2 表。要使用 ODBC 来连接至 DB2,使用了 DB2 子系统的本地名称。有关更多详细信息,请参阅 DB2 UDB for OS/390® and z/OS V7 Data Sharing: Planning and Administration 手册。

您需要为特定用户标识授予对 DB2 资源的访问权,这些访问权总结如下:
  • DB2 系统管理员
    1. 创建数据库、存储器组和表空间(BIPCRDB)。
    2. 删除数据库(BIPDLDB
  • 代理数据库的管理员(DBA)这应该是 WebSphere Message Broker 管理员。
    1. 创建表和索引(BIPCRBK
    2. 创建表、删除表和创建索引(BIPMGCMP
  • 代理启动的任务用户标识:
    1. 要从代理数据库表中选择、插入和删除行的 SQL,以及从 DB2 系统表选择的 SQL。
  • WebSphere Message Broker 管理器和其他用户
    1. 要从代理数据库表中选择、插入和删除行的 SQL,以及从 DB2 系统表选择的 SQL。

DB2 系统启动时,应当有一条消息 DSNL004I DDF START COMPLETE。本地名称就显示在该消息之后。当在 z/OS 上定制代理组件时,会在代理 PDSE 中创建一个称为 BIPDSNAOdsnaoini 文件。它包含了建立 ODBC 连接所必需的信息。有关更多详细信息,请参阅 DB2 UDB for OS/390 and z/OS V7 ODBC Guide and Reference 手册。

您应当避免使用与子系统标识或者数据共享标识相同的数据源名。如果使用了相同的名称,这可能会影响与数据库连接的伪指令的间隔。

如果选择为数据源名称和子系统标识使用相同的值,则必须在代理 PDSE 中编辑 BIPDSNAO,从而使 Datasource 和 Subsystem 关键字位于同一节中。

有关定制该文件的更多信息,请参阅 DB2 UDB for OS/390 and z/OS V7 ODBC Guide and Reference 手册。

在定制期间,您可以指定要使用的计划名称,或者使用缺省名称 DSNACLI。如果您希望代理访问除了其自身之外的 DB2 数据共享组,则必须用特殊的方法绑定 DSNACLI 计划。通过使用 SPUFI 检查通配位置是否已指定,并发出下列命令:
select * from SYSIBM.SYSPACKLIST where planname ='DSNACLI';
如果位置栏为空并且不是 '*',则应当重新绑定。

您还应当检查 DSNACLI 是否在 SYSIBM.SYSPLAN 表中。

通过使用 DB2CACHE DYNAMIC SQL 设施,可获得显著的性能提高,因为这不需要重新处理 DB2 语句。 请参阅 DB2 UDB for OS/390 and z/OS V7 Installation Guide 中的 CACHEDYN=YES

如果使用 DSNHDECP 模块将您的用户数据库配置为使用逗号作为十进制分隔符,则您会发现存在局限性。如果 DB2 和运行代理的用户标识的语言环境设置不匹配(特别是 LC_NUMERIC),则用户数据库更新可能会无法预料。LC_NUMERIC 是通过 BIPBPROF 成员中的 LC_ALL 设置进行设置的,因此是环境文件。以下详细列出了四种可能性:
  • 如果 DB2 配置为使用句点作为小数点,并且 LC_NUMERIC 设置为一个表示句点小数点的值;用户数据库更新应当正常工作。
  • 如果 DB2 配置为使用逗号作为小数点,并且 LC_NUMERIC 设置为一个表示逗号小数点的值;用户数据库更新应当正常工作。
  • 如果 DB2 配置为使用句点作为小数点,并且 LC_NUMERIC 设置为一个表示逗号小数点的值;用户数据库更新可能导致无法预测的行为。
  • 如果 DB2 配置为使用逗号作为小数点,并且 LC_NUMERIC 设置为一个表示句点小数点的值;用户数据库更新可能导致无法预测的行为。

您可以使用 DB2 安全性机制,或者如果在 z/OS 1.5 和 DB2 V8 上,可以使用外部安全性管理器,例如,RACF。

DB2 安全性机制

管理对代理的 DB2 资源最实用的方法是定义两个 RACF 组并将用户与这些组连接起来。例如,RACF 组 MQP1ADMMQP1USR 为代理 MQP1BRK 定义如下:
  • 对于组 MQP1ADM
    1. 授予该组用于代理数据库的 DBADM 权限。
    2. 通常由 WebSphere Message Broker 管理员拥有的用户标识必须添加至该组,该组需要提交 BIPCRBK 以创建代理,或提交 BIPMGCMP 以迁移代理。
  • 对于组 MQP1USR
    1. 授予该组操作代理表中各行的权限,并允许该组具有对 DB2 系统表的选择访问权。例如:
      GRANT DELETE, INSERT, SELECT, UPDATE            
           ON TABLE                                   
                    DB2_TABLE_OWNER.BSUBSCRIPTIONS  
                   ,DB2_TABLE_OWNER.BPUBLISHERS     
                   ,DB2_TABLE_OWNER.BCLIENTUSER     
                   ,DB2_TABLE_OWNER.BTOPOLOGY       
                   ,DB2_TABLE_OWNER.BNBRCONNECTIONS 
                   ,DB2_TABLE_OWNER.BRETAINEDPUBS   
                   ,DB2_TABLE_OWNER.BACLENTRIES     
                   ,DB2_TABLE_OWNER.BMQPSTOPOLOGY   
                   ,DB2_TABLE_OWNER.BUSERNAME       
                   ,DB2_TABLE_OWNER.BGROUPNAME      
                   ,DB2_TABLE_OWNER.BUSERMEMBERSHIP 
                   ,DB2_TABLE_OWNER.BROKERAA        
                   ,DB2_TABLE_OWNER.BROKERAAEG      
                   ,DB2_TABLE_OWNER.BROKERRESOURCES 
                   ,DB2_TABLE_OWNER.BRMINFO         
                   ,DB2_TABLE_OWNER.BRMRTDINFO      
                   ,DB2_TABLE_OWNER.BRMRTDDEPINFO   
                   ,DB2_TABLE_OWNER.BRMWFDINFO      
                   ,DB2_TABLE_OWNER.BRMPHYSICALRES  
                   ,DB2_TABLE_OWNER.BAGGREGATE      
                   ,DB2_TABLE_OWNER.BMULTICASTTOPICS
           TO MQP1USR;                  
      
      GRANT SELECT
           ON TABLE                                   
                    SYSIBM.SYSTABLES  
                   ,SYSIBM.SYSSYNONYMS     
                   ,SYSIBM.SYSDATABASE
           TO MQP1USR;                  
    2. 将代理启动的任务用户标识和 WebSphere Message Broker 管理员连接至该组,并连接可能需要访问表的任何其他用户,例如那些提交 BIPRELG 以运行 mqsireadlog 命令的用户。
请注意以下内容:
  • 当访问 DB2 资源时,您将 CURRENT SQLID 指定为 DB2 命令,或通过 BIPDSNAO 成员对其进行指定。

    如果该标识是组,则 DB2 检查是否您的用户标识连接至该组,如果是,则从该组继承访问权;如果该用户标识不在组中,则获得 SQL 代码 -551。

    如果您的标识位于多个组中,则使用最高权限。

  • 对于 BIPCRDBBIPDLDBCURRENT SQLID 指定为 JCL 中的命令。对于所有其他 JCL,在 BIPDSNAO 中对其进行指定。
  • 如果不使用组来定义权限,而是使用特定用户标识来定义单独用户标识的权限,则从 DB2 中除去授权用户标识时,任何其授予的权限也会除去。这可能使其他用户无法工作。
  • BIPDLDB 作业断开代理 DB2 数据库时,它也删除您当前具有的对数据库本身的映像副本引用。 如果将来复原代理,则需要复原映像副本引用。

如果该标识是组,则 DB2 检查是否您的用户标识连接至该组,如果是,则从该组继承访问权;如果该用户标识不在组中,则获得 SQL 代码 -551。如果您的标识位于多个组中,则使用最高权限。

如果不使用组来定义权限,而是使用特定用户标识来定义单独用户标识的权限,则从 DB2 中除去授权用户标识时,任何其授予的权限也会除去。这可能使其他用户无法工作。

有关提供的 WebSphere Message Broker for z/OS 作业的更多信息,请参阅 z/OS 实用程序作业

相关任务
定制 z/OS 环境
相关参考
所需访问(z/OS)总结
在 z/OS 上定制任务和角色
绑定要在 z/OS 上使用数据共享组的 DB2 计划
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ae22130_