授予其他用户访问权以仅预订树中较深的主题

此主题是任务列表中的第三个主题,用于指示如何授予多个用户预订主题的访问权。

开始之前

本主题使用授予用户订阅树中更深主题的权限 中描述的设置。

关于本任务

授予用户访问权限以订阅树中更深层次的主题USER2被拒绝访问主题Price/Fruit/Apples。 本主题告诉您如何授予对该主题的访问权,但不授予对任何其他主题的访问权。
图 1。 授予对主题树中特定主题的访问权
主题对象水果的图示,在价格/水果的主题中。 水果对象进一步分为苹果和橙子,还有一个话题对象苹果。
表 1. 示例主题和主题对象的访问需求
Topic 需要预订访问权 主题对象
价格 无用户 None
价格/水果 USER1 水果
价格/水果/苹果 USER1 和 USER2 Apple
价格/水果/橙子 USER1  

定义新主题对象,如下所示:

过程

  1. 发出 MQSC 命令 DEF TOPIC(APPLE) TOPICSTR('Price/Fruit/Apples')
  2. 按如下所示授予访问权:
    • [z/OS] z/OS® :

      在 "授予用户访问权限以订阅树中较深的主题 "USER1通过授予用户访问hlq.SUBSCRIBE.FRUIT配置文件的权限,授予了用户订阅主题Price/Fruit/Apples的权限。

      此单一档案还授予USER1订阅权限Price/Fruit/Oranges Price/Fruit/#即使添加了新的主题对象及其关联的配置文件,这种访问仍然保留。

      授予访问权限USER2订阅主题Price/Fruit/Apples通过授予用户访问hlq.SUBSCRIBE.APPLE轮廓。 使用以下命令执行此操作RACF®命令:

      RDEFINE MXTOPIC hlq.SUBSCRIBE.APPLE UACC(NONE)
      PERMIT hlq.SUBSCRIBE.FRUIT APPLE(MXTOPIC) ID(USER2) ACCESS(ALTER)
      
    • [UNIX、Linux、Windows、IBM i]多平台:

      在 "授予用户订阅主题的权限"一文中USER1"授予用户订阅主题的权Price/Fruit/Apples"是通过授予用户对FRUIT配置文件的订阅权限来实现的。

      此单个概要文件还授予了 USER1 访问权以预订 Price/Fruit/OrangesPrice/Fruit/#,即使添加了新主题对象以及与其关联的概要文件,此访问权仍保留。

      通过授予用户对 APPLE 概要文件的预订访问权,授予对 USER2 的访问权以预订主题 Price/Fruit/Apples 。 执行此操作,对平台使用授权命令:

      [AIX、Linux 和 Windows]AIX®, Linux®, and Windows 系统
      setmqaut -t topic -n APPLE -p USER2 +sub
      
      [IBM i]IBM® i
      GRTMQAUT OBJ(APPLE) OBJTYPE(*TOPIC) USER(USER2) AUT(*SUB)
      

结果

[z/OS]z/OS 上,当 USER1 试图订阅主题 Price/Fruit/Apples 时,对 hlq.SUBSCRIBE.APPLE 配置文件的第一次安全检查失败,但在向上移动树时, hlq.SUBSCRIBE.FRUIT 配置文件允许 USER1 订阅,因此订阅成功,没有向 MQSUB 调用发送返回代码。 然而,RACFICH第一次检查时生成消息:
ICH408I USER(USER1   ) ...
  hlq.SUBSCRIBE.APPLE ...

USER2 尝试预订主题 Price/Fruit/Apples 时,结果是成功的,因为安全性检查通过了第一个概要文件。

USER2 尝试预订主题 Price/Fruit/Oranges 时,结果是失败,并显示 MQRC_NOT_AUTHORIZED 消息,以及:
  • [z/OS]z/OS 上,控制台会出现以下信息,显示已尝试通过主题树的完整安全路径:
    ICH408I USER(USER2   ) ...
      hlq.SUBSCRIBE.FRUIT ...
    
    ICH408I USER(USER2   ) ...
      hlq.SUBSCRIBE.SYSTEM.BASE.TOPIC ...
    
  • [AIX、Linux 和 Windows]AIX, Linux, and Windows 平台上,授权事件如下:
    MQRC_NOT_AUTHORIZED
    ReasonQualifier	  MQRQ_SUB_NOT_AUTHORIZED
    UserIdentifier	    USER2
    AdminTopicNames	  FRUIT, SYSTEM.BASE.TOPIC
    TopicString		   "Price/Fruit/Oranges"
    
  • [IBM i] IBMi 上发生以下授权事件:
    MQRC_NOT_AUTHORIZED
    ReasonQualifier	  MQRQ_SUB_NOT_AUTHORIZED
    UserIdentifier	    USER2
    AdminTopicNames	  FRUIT, SYSTEM.BASE.TOPIC
    TopicString		   "Price/Fruit/Oranges"
    

[z/OS]这种设置的缺点是,在 z/OS 时,控制台会收到额外的 ICH 消息。 如果您以不同的方式保护主题树,则可以避免这种情况。