一、rabbitmq用户管理以及UI管理界面的使用
用户的管理分为:用户的创建、查看用户列表、删除用户、用户的信息修改(如密码等)、用户的角色分配、用户的权限控制。应该所有的用户管理都是这六大类吧。
所有操作前提:cmd进入rabbitmq安装目录sbin目录下。
1、用户的创建
rabbitmqctl add_user Username Password
执行此命令创建的用户,其权限为none,是没有任何权限的,如下图所示:
若此时用新建的用户去登录管理界面是无法登录的,因为它没有相应的权限,如下图所示:
2、查看用户列表
rabbitmqctl list_usres
如下图所示:
3、删除用户
rabbitmqctl delete_user Username
如下图所示:
4、用户的信息修改,如修改用户密码
rabbitmqctl change_password Username Newpassword
如下图所示:
二、用户的角色和权限控制
1、用户角色控制
rabbitmq用户角色分为Administrator、Monitoring、Policymaker、Management、Impersonator、None共六种角色。
设置用户角色的命令为:rabbitmqctl set_user_tags User Tag
User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
也可以给同一用户设置多个角色,例如:rabbitmqctl set_user_tags jasonname monitoring policymaker
如下图所示:
(1) Administrator
超级管理员,可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作,因为是超级管理员,可以这样理解,它可以为所欲为,什么操作都能干,删除用户、修改用户密码、重置用户角色、策略制定等等。
(2)Monitoring
监控者,可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
(3)Policymaker
策略制定者,可登陆管理控制台(启用management plugin的情况下),同时可以对policy进行管理。但无法查看节点的相关信息。
(4)Management
普通管理者,仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5)Impersonator
模拟者,无法登录管理控制台,因为没有管理者权限,如下图所示:
(6)None
其他用户,无法登陆管理控制台,通常就是普通的生产者和消费者。
以上就是rabbitmq的用户角色设置,了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需进行管理。
2、用户权限控制
用户拥有的权限不同,对应的所能操作的范围也就不同。
用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。
例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。
如下图所示:
cmd命令行操作设置用户权限相关命令如下:
(1)设置用户权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
如下图所示:
(2)查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p VHostPath]
如下图所示:
(3)查看指定用户的权限信息
rabbitmqctl list_user_permissions User
如下图所示:
(4)清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User
如下图所示:
参考博文:
(1) https://blog.csdn.net/qq_35781732/article/details/79807160
(2) https://www.cnblogs.com/zwwhnly/p/10918665.html
(3) https://www.rabbitmq.com/ (rabbitmq官网)