zl程序教程

您现在的位置是:首页 >  其他

当前栏目

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)新增用户和用户角色权限

错误Failed权限RabbitMQ 解决 用户 以及 not
2023-09-27 14:26:20 时间

1. 复现问题

今天登录rabbitMq后台管理后,在Admin这页中,点击Add user按钮,如下图所示:

在这里插入图片描述

点击Close按钮,关闭Not management user弹出框,重新登录时却报出这个错误:Not management user,如下图所示:

在这里插入图片描述

2. 分析问题

Not management user 翻译成中文即为非管理用户,非管理用户无法登录管理控制台,因而,报出这个错误。

虽然我登录的是guest用户,因为账号guest具有所有的操作权限,当然可以登录管理控制台。

但我在上文中修改guest用户角色为空,导致现在无法登录。

使用如下命令查看guest权限:

rabbitmqctl list_users

注意事项:执行rabbitmqctl指令时,可能会报错,解决方式可参考该文档:unable to perform an operation on node ‘rabbit@DESKTOP-xxx

如下图所示:

在这里插入图片描述

你会看到guest权限为空,因为我在上文点击Add User按钮时,并没有设置Tags,导致guest的用户角色权限为空。

Tags为角色名(对应于下面的administratormonitoringpolicymakermanagement,或其他自定义名称)

rabbitmq的用户角色可分为五类:超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

  1. 超级管理员(administrator)

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

  1. 监控者(monitoring)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

  1. 策略制定者(policymaker)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。

administrator的对比,administrator能看到这些内容

  1. 普通管理者(management)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

  1. 其他

无法登陆管理控制台,通常就是普通的生产者和消费者。

那么,我现在有两种解决方案,如下所示:

  1. 使用rabbitmqctl修改guest角色权限

  2. 新增用户和用户角色

3. 解决问题

3.1 rabbitmqctl修改guest角色权限

  1. 使用如下指令修改guest的角色权限:
rabbitmqctl set_user_tags guest administrator

修改结果如下图:

在这里插入图片描述

  1. 使用指令rabbitmqctl list_users查看guest的角色权限

在这里插入图片描述

  1. 使用guest登录RabbitMq登录后台

在这里插入图片描述

在这里插入图片描述

从图中可以看到,能够正产登录。

3.2 新增用户和用户角色

  1. 使用如下命令新增用户
rabbitmqctl add_user test test123

如下图所示:

在这里插入图片描述

用户新增成功后,Done后的语句Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.,目的是提醒你不要忘记设计设置权限,于是继续设置权限。

  1. 使用如下指令设置权限
rabbitmqctl set_user_tags test administrator

如下图所示:

在这里插入图片描述

  1. 使用test用户,密码为test123登录RabbitMq登录后台

在这里插入图片描述

在这里插入图片描述