RabbitMQ角色说明及权限说明

角色说明:

administartor    可以登陆控制台,查看所有信息,可以对rabbitmq进行管理

monitoring        监控者,可以登陆控制台,查看所有信息

policymaker      策略定制者,登陆控制台,指定策略

managment      普通管理员,可以登陆控制台

none               其他,无法登陆控制台,通常就是普通的生产者和消费者

创建用户密码及相关命令:

创建用户

rabbitmqctl add_user admin 123

给予用户相关角色

rabbitmqctl set_user_tags admin administrator

查看用户列表

rabbitmqctl list_users

更改用户密码

rabbitmqctl change_password admin 12345

删除用户

rabbitmqctl delete_user [Username]

VirtualHost说明

先理解下什么是VirtualHost?

像mysql拥有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?
RabbitMQ也有类似的权限管理。在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当月一个相对独立的RabbitMQ
服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 相当于mysql的db。Virtual Name一般以/开头

用户权限指的是用户对其所能访问的virtual hosts中的资源exchange,queue的操作权限(包括配置权限,读写权限)

对何virtual hosts具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
rabbitmqctl set_permissions -p <vhostpath> <user> <conf> <write> <read>
###例如,给admin用户赋予 / 的所有权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

注:默认virtual host为"/",默认用户guest(密码也是guest)具有"/"上的全部权限,仅能有localhost可以进行访问,建议删除或更改密码。

       可通过将配置文件中loopback_users项来取消其只能本地访问的限制:erlang格式 {rabbit, [{loopback_users, []}]} sysctl格式 loopback_users=none

创建虚拟主机

rabbitmqctl add_vhost [vhostpath]

列出所有虚拟主机

rabbitmqctl list_vhosts

列出虚拟主机上所有角色对应权限

rabbitmqctl list_permissions -p [vhostpath]

删除虚拟主机

rabbitmqctl delete_vhost [vhostpath]

权限说明:

查看指定用户的权限信息

rabbitmqctl list_user_permissions admin

设置用户对某个virtual hosts的权限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

清除用户对某个virtual hosts的权限

rabbitmqctl clear_permissions -p / admin 

 

posted @ 2022-03-30 01:11  RFAA  阅读(975)  评论(0编辑  收藏  举报