RabbitMQ管理(2)——用户管理

简介: 在RabbitMQ中,用户是访问控制(Access Control)的基本单元,且单个用户可以跨越多个vhost进行授权。针对一至多个vhost,用户可以被赋予不同级别的访问权限,并使用标准的用户名和密码来认证用户。

在RabbitMQ中,用户是访问控制(Access Control)的基本单元,且单个用户可以跨越多个vhost进行授权。针对一至多个vhost,用户可以被赋予不同级别的访问权限,并使用标准的用户名和密码来认证用户。
创建用户的命令为:rabbitmqctl add_user {username} {password}。其中username表示要创建的用户名称;password表示创建用户登录的密码。具体创建一个用户名为root、密码为root123的用户:

[root@node1 ~]# rabbitmqctl add_user root root123
Creating user "root"

可以通过rabbitmqctl change_password {username} {newpassword}命令来更改指定用户的密码,其中username表示要变更密码的用户名称,newpassword表示要变更的新的密码。举例,将root用户的密码变更为root321:

[root@node1 ~]# rabbitmqctl change_password root root321
Changing password for user "root"

同样可以清除密码,这样用户就不能使用密码登录了,对于的操作命令为:rabbitmqctl clear_password {username},其中username表示要清楚密码的用户名称。
使用rabbitmqctl authenticate_user {username} {password}可以通过密码来验证用户,其中username表示需要被验证的用户名称,password表示密码。下面示例中分别采用root321和root322来验证root用户:

[root@node1 ~]# rabbitmqctl authenticate_user root root321
Authenticating user "root"
Success
[root@node1 ~]# rabbitmqctl authenticate_user root root322
Authenticating user "root"
Error: failed to authenticate user "root"

删除用户的命令是:rabbitmqctl delete_user {username},其中username表示要删除的用户名称。删除用户root的示例如下:

[root@node1 ~]# rabbitmqctl delete_user root
Deleting user "root"

rabbitmqctl list_users命令可以用来罗列当前的所有用户。每个结果行都包含用户名称,其后紧跟用户的角色(tags)。示例代码如下:

[root@node1 ~]# rabbitmqctl list_users
Listing users
guest        [administrator]
root          []

用户的角色分为5种类型:

  • none:无任何角色。新创建的用户的角色默认为none。
  • management:可以访问Web管理页面。Web管理页面在5.3章节中会有详细介绍。
  • policymaker:包含management的所有权限,并且可以管理策略(policy)和参数(parameter)。详细参考5.5章节。
  • monitoring:包含management的所有权限,并且可以看到所有连接(connections)、信道(channels)以及节点相关的信息。
  • administartor:包含monitoring的所有权限,并且可以管理用户、虚拟主机、权限、策略、参数等等。administator代表了最高的权限。
    用户的角色可以通过rabbitmqctl set_user_tags {username} {tag …}命令设置。其中username参数表示需要设置角色的用户名称;tag参数用于设置0个、1个或者多个的角色,设置之后任何之前现有的身份都会被删除。使用示例如下:
[root@node1 ~]# rabbitmqctl set_user_tags root monitoring
Setting tags for user "root" to [monitoring]
[root@node1 ~]# rabbitmqctl list_users -q
guest        [administrator]
root         [monitoring]
[root@node1 ~]# rabbitmqctl set_user_tags root policymaker -q
[root@node1 ~]# rabbitmqctl list_users -q
guest        [administrator]
root         [policymaker]
[root@node1 ~]# rabbitmqctl set_user_tags root
Setting tags for user "root" to []
[root@node1 ~]# rabbitmqctl list_users -q
guest        [administrator]
root         []
[root@node1 ~]# rabbitmqctl set_user_tags root policymaker,management
Setting tags for user "root" to ['policymaker,management']
[root@node1 ~]# rabbitmqctl list_users -q
guest        [administrator]
root         [policymaker,management]
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
存储 传感器 物联网
如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信
如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信
988 0
如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信
|
7月前
|
消息中间件 Docker 容器
Docker中的RabbitMQ已经启动运行,但是管理界面打不开
Docker中的RabbitMQ已经启动运行,但是管理界面打不开
740 0
|
消息中间件 数据安全/隐私保护 Windows
windows下RabbitMQ安装后,无法进入web管理页面问题
windows下RabbitMQ安装后,无法进入web管理页面问题
917 1
|
消息中间件 关系型数据库 MySQL
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
81 1
|
7月前
|
消息中间件 存储 数据库
RabbitMQ入门指南(二):架构和管理控制台的使用
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。
191 0
RabbitMQ入门指南(二):架构和管理控制台的使用
|
7月前
|
消息中间件 存储 NoSQL
【Redis项目实战】使用Springcloud整合Redis分布式锁+RabbitMQ技术实现高并发预约管理处理系统
【Redis项目实战】使用Springcloud整合Redis分布式锁+RabbitMQ技术实现高并发预约管理处理系统
|
消息中间件
RabbitMQ管理命令
RabbitMQ管理命令
|
消息中间件 数据安全/隐私保护 Windows
windows下RabbitMQ安装后,无法进入web管理页面问题
windows下RabbitMQ安装后,无法进入web管理页面问题
222 0
|
消息中间件 存储 Prometheus
可视化界面工具可以用于管理和监控 Apache RocketMQ
可视化界面工具可以用于管理和监控 Apache RocketMQ
1979 3