[MQ 9.3.0 2022 年 6 月][UNIX、Linux、Windows、IBM i]

流式队列安全性

流式队列功能允许管理员配置具有辅助队列的本地 (或模型) 队列,只要将消息放入原始队列,就会放置重复的消息。 关于队列流权限有两个方面需要考虑。

用于配置队列以流式处理重复消息的权限

如果要启用从一个队列到辅助队列的重复消息的消息流,那么您必须具有执行此操作的许可权。 配置队列的 STREAMQ 属性的许可权要求您具有以下权限:
  1. 他们正在更改其 STREAMQ 属性的队列的 CHG 权限
  2. 要将重复消息放入的队列的 CHG 权限

这两个权限检查在配置时的组合可确保仅在原始队列上具有 CHG 权限的用户无法将消息放入他们没有许可权的另一个队列。

打开一个或多个队列并放置消息的权限

当应用程序打开已配置了辅助队列的队列时,将通过其 STREAMQ 属性进行权限检查,以确保应用程序用户对原始队列具有 PUT 权限。
注: 不会对辅助队列上的应用程序用户进行其他权限检查,这类似于用于别名队列的权限模型。

使用来自原始队列或辅助队列的消息的应用程序需要 GET 或 BROWSE 权限,仅在使用这些消息的队列上。

不会在放置或获取时间进行其他权限检查。

示例

以下示例显示了为允许用户 admin 配置原始队列 INQUIRIES.QUEUE,用于将其重复消息流至本地队列 ANALYTICS.QUEUE,但阻止 admin 将消息复制到 PURCHASES.QUEUE:
SET AUTHREC PROFILE(INQUIRIES.QUEUE) PRINCIPAL('admin') AUTHADD(CHG)
SET AUTHREC PROFILE(ANALYTICS.QUEUE) PRINCIPAL('admin') AUTHADD(CHG)
SET AUTHREC PROFILE(PURCHASES.QUEUE) PRINCIPAL('admin') AUTHRMV(CHG)
然后,用户 admin 可以发出以下命令:
ALTER QLOCAL(INQUIRIES.QUEUE) STREAMQ(ANALYTICS.QUEUE)
但如果同一用户发出以下命令:
ALTER QLOCAL(INQUIRIES.QUEUE) STREAMQ(PURCHASES.QUEUE)
以配置 INQUIRIES.QUEUE ,用于将重复消息放入 PURCHASES.QUEUE,它们接收到以下错误:
AMQ8135E 未授权
使用 INQUIRIES.QUEUE 已配置为将消息复制到 ANALYTICS.QUEUE,以下权限记录用于允许作为用户 appuser 运行的应用程序将消息放入 INQUIRIES.QUEUE,以及到 ANALYTICS.QUEUE:
SET AUTHREC PROFILE(INQUIRIES.QUEUE) PRINCIPAL('appuser') AUTHADD(PUT)
注: appuser 不需要 ANALYTICS.QUEUE。 队列管理器将重复的消息放入队列。