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

VirtualHost 作用及用法

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

1.管理界面在这里插入图片描述

2.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
在这里插入图片描述

3.User信息

我们先看User信息,有2个User,admin和guest,点开Virtual 也可以看到用户信息在这里插入图片描述
新建一个User信息test
在这里插入图片描述

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

选择jzj 虚拟消息服务器,然后选择用户test,赋予test权限
在这里插入图片描述
可以看到 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 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

猜你喜欢

转载自blog.csdn.net/u010134642/article/details/106630620