MQ容器系统队列授权配置求助:为App用户增删权限
IBM MQ 容器场景下权限配置解决方案
一、runmqsc QM1 中正确的权限配置命令
先通过runmqsc QM1进入队列管理器命令行,再执行以下命令:
# 授予app用户连接队列管理器的基础权限(解决无法登录的核心问题) SET AUTHREC PROFILE('QM1') PRINCIPAL('app') OBJTYPE(QMGR) AUTHADD(CONNECT,INQ) # 为SYSTEM.ADMIN.COMMAND.QUEUE授予必要权限(用于查看队列等管理操作) SET AUTHREC PROFILE('SYSTEM.ADMIN.COMMAND.QUEUE') PRINCIPAL('app') OBJTYPE(QUEUE) AUTHADD(BROWSE,DSP,INQ,PUT) # 为SYSTEM.DEFAULT.MODEL.QUEUE授予必要权限(用于创建临时队列,辅助查看队列列表) SET AUTHREC PROFILE('SYSTEM.DEFAULT.MODEL.QUEUE') PRINCIPAL('app') OBJTYPE(QUEUE) AUTHADD(DSP,GET,PUT) # 刷新安全配置使更改生效 REFRESH SECURITY(*) TYPE(CONNAUTH)
说明:之前app用户无法登录,是因为缺少队列管理器的
CONNECT和INQ基础权限,必须先配置该权限,再设置队列相关权限。
二、容器部署场景下的Linux命令
1. 添加权限的命令(宿主机直接执行,无需进入容器)
docker exec -it <你的MQ容器名称或ID> runmqsc QM1 << EOF SET AUTHREC PROFILE('QM1') PRINCIPAL('app') OBJTYPE(QMGR) AUTHADD(CONNECT,INQ) SET AUTHREC PROFILE('SYSTEM.ADMIN.COMMAND.QUEUE') PRINCIPAL('app') OBJTYPE(QUEUE) AUTHADD(BROWSE,DSP,INQ,PUT) SET AUTHREC PROFILE('SYSTEM.DEFAULT.MODEL.QUEUE') PRINCIPAL('app') OBJTYPE(QUEUE) AUTHADD(DSP,GET,PUT) REFRESH SECURITY(*) TYPE(CONNAUTH) EOF
2. 移除权限的命令
若需撤销上述权限,执行:
docker exec -it <你的MQ容器名称或ID> runmqsc QM1 << EOF # 移除队列管理器权限 SET AUTHREC PROFILE('QM1') PRINCIPAL('app') OBJTYPE(QMGR) AUTHRMV(CONNECT,INQ) # 移除SYSTEM.ADMIN.COMMAND.QUEUE权限 SET AUTHREC PROFILE('SYSTEM.ADMIN.COMMAND.QUEUE') PRINCIPAL('app') OBJTYPE(QUEUE) AUTHRMV(BROWSE,DSP,INQ,PUT) # 移除SYSTEM.DEFAULT.MODEL.QUEUE权限 SET AUTHREC PROFILE('SYSTEM.DEFAULT.MODEL.QUEUE') PRINCIPAL('app') OBJTYPE(QUEUE) AUTHRMV(DSP,GET,PUT) REFRESH SECURITY(*) TYPE(CONNAUTH) EOF
注意:替换
<你的MQ容器名称或ID>为实际容器名或ID,可通过docker ps查看。
内容的提问来源于stack exchange,提问作者user10820864
相关产品推荐
相关产品推荐

