欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-15 14:11:24
...

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 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