参考博客:https://blog.youkuaiyun.com/super_rd/article/details/71191851?utm_source=itdadao&utm_medium=referral
服务器官方使用文档:https://www.rabbitmq.com/admin-guide.html
VirtualHost
RabbitMq的VirtualHost(虚拟消息服务器),每个VirtualHost相当于一个相对独立的RabbitMQ服务器;每个VirtualHost之间是相互隔离的,exchange、queue、message不能互通。
拿数据库(用MySQL)来类比:RabbitMq相当于MySQL,RabbitMq中的VirtualHost就相当于MySQL中的一个库。
创建VirtualHost
一、命令行
rabbitmqctl add_vhost 虚拟服务器名称
例如:
rabbitmqctl add_vhost my_test
二、后台管理页面
创建用户并配置权限
创建用户:
rabbitmqctl add_user 用户名 密码
例如:
rabbitmqctl add_user testuser testuser
为用户配置权限:
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
例如:
rabbitmqctl set_permissions -p my_test testuser ".*" ".*" ".*"
其中[/]可以访问所有的虚拟服务器(virtual host),如果改成虚拟服务器名称的话,表示该用户能访问这个虚拟服务器。
后面的3个[".*"]应该是配置,读,写的权限正则表达式(我暂时没理清这个)。
配置角色
rabbitmqctl set_user_tags 用户名 角色类型
例如:
rabbitmqctl set_user_tags testuser policymaker
由于我没找到官方的说明,下面就引用了别人写的内容。
------------------引用部分开始-------------------------------------------------------------------------------
角色类型有:none、management、policymaker、monitoring、administrator
官方解释:
management
User can access the management plugin
policymaker
User can access the management plugin and manage policies and parameters for the vhosts they have access to.
monitoring
User can access the management plugin and see all connections and channels as well as node-related information.
administrator
User can do everything monitoring can do, manage users, vhosts and permissions, close other user’s connections, and manage policies and parameters for all vhosts.
解释如下:
none
不能访问 management plugin
management
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
policymaker
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
monitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
administrator
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
------------------引用部分结束-------------------------------------------------------------------------------