天天看点

RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

VirtualHost 作用及用法

Virtual Hosts的使用场景

多租户的使用场景,比如主机资源紧缺情况下开发和测试共用一个RabbitMQ,可以使用Virtual Hosts将开发和测试隔离开

1.管理界面
RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

2.VirtualHost介绍

RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

从上图可以看到,Admin界面可以看到User、VirtulalHost、Policies、Limits、Cluster 等几个选项,今天要介绍的VirtualHost就在其中

RabbitMq的 VirtualHost(虚拟消息服务器),每个VirtualHost相当于一个相对独立的RabbitMQ服务器,像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。每个VirtualHost之间是相互隔离的,exchange-交换机、queue-队列、message-消息 不能互通

拿数据库(用MySQL)来对比:RabbitMq相当于MySQL,RabbitMq中的VirtualHost就相当于MySQL中的一个db库,你可以在mysql中新建很多库,设置库的权限操作。

新建一个VirtualHost ,可以看到

默认的 / host下面有两个用户 admin、guest

新建的 jzj 下面只有1个用户 admin

RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

3.User信息

我们先看User信息,有2个User,admin和guest,点开Virtual 也可以看到用户信息

RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

新建一个User信息test

RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

4.将virtualHost和User 权限绑定赋权

选择jzj 虚拟消息服务器,然后选择用户test,赋予test权限

RabbitMQ系列(二)VirtualHost作用及角色权限管理实战

可以看到 virtualHost jzj 已经添加了用户 test,现在拥有两个用户admin和test

当然我们也可以用命令来新建用户和赋予权限,参考 RabbitMQ系列(一)https://editor.csdn.net/md/?articleId=106609072

创建用户并配置权限
创建用户:
rabbitmqctl add_user 用户名 密码
例如:
rabbitmqctl add_user test test

为用户配置权限:
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
例如:
rabbitmqctl set_permissions -p jzj test ".*" ".*" ".*"
其中[/]可以访问默认虚拟服务器(virtual host),如果改成虚拟服务器名称jzj,表示该用户能访问这个虚拟服务器

配置角色:
rabbitmqctl set_user_tags 用户名 角色类型
例如:
rabbitmqctl set_user_tags test administrator
           

5.角色管理

配置角色

rabbitmqctl set_user_tags [user] [role]

RabbitMQ中的角色分为如下五类:none、management、policymaker、monitoring、administrator

5.1 none

不能访问 management plugin

5.2 management

用户可以通过AMQP做的任何事外加:

列出自己可以通过AMQP登入的virtual hosts

查看自己的virtual hosts中的queues, exchanges 和 bindings

查看和关闭自己的channels 和 connections

查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

5.3 policymaker

management可以做的任何事外加:

查看、创建和删除自己的virtual hosts所属的policies和parameters

5.4 monitoring

management可以做的任何事外加:

列出所有virtual hosts,包括他们不能登录的virtual hosts

查看其他用户的connections和channels

查看节点级别的数据如clustering和memory使用情况

查看真正的关于所有virtual hosts的全局的统计信息

5.5 administrator

policymaker和monitoring可以做的任何事外加:

创建和删除virtual hosts

查看、创建和删除users

查看创建和删除permissions

关闭其他用户的connections

下一篇介绍 实战 RabbitMQ进阶-Queue队列特性 (一)简单队列