不管我们是通过网页还是通过命令行工具创建用户对象,刚创建好的用户对象都是没法直接使用的,需要我们首先把这个用户置于某一个 vhost 之下,然后再赋予其权限,有了权限,这个用户才可以正常使用。
那么今天我们就来了解一下 RabbitMQ 中的权限系统,看下这个权限系统是什么样子的。
1. RabbitMQ 权限系统介绍
RabbitMQ 是从 1.6 这个版本开始实现了一套 ACL 风格的权限系统。
在这套 ACL 风格的权限管理系统中,允许非常多细粒度的权限控制,可以为不同用户分别设置读、写以及配置等权限。
这里涉及到三种不同的权限:
- 读:和消息消费有关的所有操作,包括清除整个队列的消息。
- 写:发布消息。
- 配置:消息队列、交换机等的创建和删除。
这是 RabbitMQ 权限系统的一个简单介绍。
2. 操作和权限的对应关系
接下来,下图展示了操作和权限的对应关系:
公众号后台回复 rabbitmq_permission
可以获取这张图的 Excel 表格。
执行什么命令,需要什么权限,这张图描述的一清二楚了。
3. 权限操作命令
RabbitMQ 中权限操作命令格式如下:
rabbitmqctl set_permissions [-p vhosts] {user} {conf} {write} {read}
复制代码