RabbitMQ 用户授权读取队列但防止清除访问
RabbitMQ user authorization to read queues but prevent purge access
我在 RabbitMQ 中添加了一个用户,并在 RabbitMQ 管理控制台中编辑了读取“.*”的权限。
命令list_permissions
的输出显示用户"readman"只有读取权限。
$ rabbitmqctl list_permissions --vhost /
Listing permissions for vhost "/" ...
user configure write read
admin .* .* .*
guest .* .* .*
readman .*
但是,当以 "readman" 身份登录时,我仍然可以从队列中清除消息。这是预期的吗?如何允许用户查看队列和消息,但不能清除队列的消息?
是的,这是预期的,因为根据权限 table,queue.purge
的 amqp (0-9-1) 操作仅需要 READ 权限在队列上,因此任何对队列具有读取权限的用户也将能够清除该队列。
我在 RabbitMQ 中添加了一个用户,并在 RabbitMQ 管理控制台中编辑了读取“.*”的权限。
命令list_permissions
的输出显示用户"readman"只有读取权限。
$ rabbitmqctl list_permissions --vhost /
Listing permissions for vhost "/" ...
user configure write read
admin .* .* .*
guest .* .* .*
readman .*
但是,当以 "readman" 身份登录时,我仍然可以从队列中清除消息。这是预期的吗?如何允许用户查看队列和消息,但不能清除队列的消息?
是的,这是预期的,因为根据权限 table,queue.purge
的 amqp (0-9-1) 操作仅需要 READ 权限在队列上,因此任何对队列具有读取权限的用户也将能够清除该队列。