如何为rabbitmq管理重置用户

Posted

技术标签:

【中文标题】如何为rabbitmq管理重置用户【英文标题】:How to reset user for rabbitmq management 【发布时间】:2013-01-19 22:16:00 【问题描述】:

使用rabbitmq,我们可以安装管理插件。然后我们使用http://localhost:55672/ 使用guest:guest 通过浏览器访问。 问题是,我无法再登录,因为我更改了密码并为角色输入了空白。

有没有办法重置用户进行rabbitmq管理?

【问题讨论】:

【参考方案1】:

您可以使用rabbitmqctl 访问用户管理并使用以下命令:

add_user username password

或者更优选地可以编辑现有用户,或者为新用户设置权限:

set_permissions [-p vhostpath] user conf write read

例如使用以下命令:(即使在创建新用户时,执行这三个步骤也很重要,如果您希望能够登录 UI 控制台并让您的程序在不遇到任何权限问题的情况下运行)

rabbitmqctl add_user newadmin s0m3p4ssw0rd
rabbitmqctl set_user_tags newadmin administrator
rabbitmqctl set_permissions -p / newadmin ".*" ".*" ".*"

...创建一个对默认/vhost具有完全访问权限的新管理员用户。

您可以在RabbitMQ homepage 上找到所有这些信息,更具体地说,可以在此page 上找到

【讨论】:

谢谢,我试试这个来设置权限:rabbitmqctl set_user_tags khad administrator @Superbiji 您应该考虑将此评论转换为答案。我知道它很旧,但这是对我有用的解决方案。 set_permissions -p / newadmin ".*" ".*" ".*" 这工作得很好!!谢谢 您应该以root用户身份登录或使用“sudo”【参考方案2】:

我找到的最简单的方法是使用此命令为 RabbitMQ 中的任何用户重置密码

rabbitmqctl change_password <USERNAME> <NEWPASSWORD>

【讨论】:

【参考方案3】:

这专门用于活力测试,但也可以应用于其他 api

rabbitmqctl add_vhost statuscheckvhost
rabbitmqctl add_user heartbeat alive
rabbitmqctl set_permissions -p statuscheckvhost heartbeat ".*" ".*" ".*"
rabbitmqctl set_user_tags heartbeat management

curl -i -u heartbeat:alive http://127.0.0.1:55672/api/aliveness-test/statuscheckvhost
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.9.0 (someone had painted it blue)
Date: Thu, 21 Feb 2013 22:20:10 GMT
Content-Type: application/json
Content-Length: 15
Cache-Control: no-cache
"status":"ok"

【讨论】:

【参考方案4】:

如果你在 docker 容器上有 RabbitMQ,你可以先

docker exec -it <YOUR_CONTAINER> /bin/bash

那你就可以了

rabbitmqctl change_password <USERNAME> <NEWPASSWORD>

如@samtoddler 指出的

【讨论】:

以上是关于如何为rabbitmq管理重置用户的主要内容,如果未能解决你的问题,请参考以下文章

如何为RabbitMQ和Spring动态注册队列及其独占的使用者/监听器?

RabbitMQ探索之路:RabbitMQ在Linux上的安装

RabbitMQ用户管理

rabbitmq 服务端 exchange怎么绑定queue

rabbitmq——用户管理

rabbitmq——用户管理