如何为 Rabbitmq 管理重置用户

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

有什么方法可以重置 Rabbitmq 管理的用户吗?

116989 次浏览

You can access the user-management with rabbitmqctl and use the command:

add_user {username} {password}

or more preferably maybe edit an existing user, or set the permissions for the new user with:

set_permissions [-p vhostpath] {user} {conf} {write} {read}

For example use the following commands: (it is important to perform these three steps even when creating a new user, if you want to be able to login to the UI console and for your programs to work without facing any permission issues)

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

...to create a new administrator user with full access to the default / vhost.

You can find all this on the RabbitMQ homepage, and more specifically on this page

This is specifically for aliveness test, but could apply to other apis as well

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"}

The simplest way I found is to use this command to reset the password for any user in RabbitMQ

rabbitmqctl change_password <USERNAME> <NEWPASSWORD>

If you have RabbitMQ on a docker container, you can first

docker exec -it <YOUR_CONTAINER> /bin/bash

Then you can do

rabbitmqctl change_password <USERNAME> <NEWPASSWORD>

such as @samtoddler pointed out

I was able to reset after this post. Thanks a lot.

rabbitmqctl add_user test password rabbitmqctl set_user_tags test administrator

Then I went to browser console and login with this test account. And from there I was able to reset pwd of admin account & guest account.