首页 > 解决方案 > RabbitMQ 用户授权读取队列但阻止清除访问

问题描述

我在 RabbitMQ 中添加了一个用户,并在 RabbitMQ 管理控制台中编辑了读取“.*”的权限。

该命令的输出list_permissions显示用户“readman”只有读取权限。

$ rabbitmqctl list_permissions --vhost /
Listing permissions for vhost "/" ...
user    configure       write   read
admin          .*      .*      .*
guest           .*      .*      .*
readman                         .*

但是,当以“readman”身份登录时,我仍然可以从队列中清除消息。这是预期的吗?如何使用户能够查看队列和消息,但不能清除队列的消息?

标签: rabbitmqrabbitmqctl

解决方案


是的,这是意料之中的,因为根据权限表,amqp (0-9-1) 操作queue.purge只需要队列的读取权限,因此任何对队列具有读取权限的用户也可以清除该队列.

在此处输入图像描述


推荐阅读