![[MQ 9.3.0 2022 年 6 月]](ng930.gif)
![[UNIX、Linux、Windows、IBM i]](ngmulti.gif)
流式队列安全性
流式队列功能允许管理员配置具有辅助队列的本地 (或模型) 队列,只要将消息放入原始队列,就会放置重复的消息。 关于队列流权限有两个方面需要考虑。
用于配置队列以流式处理重复消息的权限
如果要启用从一个队列到辅助队列的重复消息的消息流,那么您必须具有执行此操作的许可权。 配置队列的 STREAMQ 属性的许可权要求您具有以下权限:
- 他们正在更改其 STREAMQ 属性的队列的 CHG 权限
- 要将重复消息放入的队列的 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。 队列管理器将重复的消息放入队列。